题目及源码分析:
/* * 今天在BBS里面看到这样的面试题目, 1,二维数组(N*N),沿对角线方向,从右上角打印到左下角如N=4: 4*4二维数组 { 1 2 3 4 } { 5 6 7 8 } { 9 10 11 12 } {13 14 15 16 } 打印顺序 4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13 要求半个小时内写出可完整运行的代码。 * */ /* * 算法分析: [0][3] 与最后一行x,y对换 [0][2], [1][3] 与倒数第二行x,y对换 [0][1], [1][2], [2][3] 与倒数第三行x,y对换 [0][0], [1][1], [2][2], [3][3] 从这里下手向上下递增递减 [1][0], [2][1], [3][2] 与第三行x,y对换 [2][0], [3][1] 与第二行x,y对换 [3][0] 与第一行x,y对换 * */
相应的事项代码:
public class Algorithm { public static void main(String[] args) { String split = " "; // int[][] arr = {{ 1, 2, 3, 4,21 }, // { 5, 6, 7, 8, 22}, // { 9, 10, 11, 12, 23}, // {13, 14, 15, 16, 24 }, // {17, 18, 19, 20, 25 }}; int N = 20, value = 1; int[][] arr = new int[N][N]; for (int i = 0; i < N; i++) { arr[i] = new int[N]; for (int j = 0; j < N; j++) { arr[i][j] = value++; } } int len = arr.length - 1; int x = 0, y = len; for (int k = 0; k <= len; k++) { x = 0; for (int m = 0; m <= k; m++) { System.out.print(""+arr[x++][y-k+m]+split); } System.out.println(split); } x = y = 0; int n = 0; for (int k = len; k >= 0; k--) { x = n++; for (int m = 0; m < k; m++) { System.out.print(""+arr[++x][y+m]+split); } System.out.println(split); } } } /* * * 当N=4时,结果为: 4 3 8 2 7 12 1 6 11 16 5 10 15 9 14 13 当N=5时,结果为: 5 4 10 3 9 15 2 8 14 20 1 7 13 19 25 6 12 18 24 11 17 23 16 22 21 当N=20时,结果为: 20 19 40 18 39 60 17 38 59 80 16 37 58 79 100 15 36 57 78 99 120 14 35 56 77 98 119 140 13 34 55 76 97 118 139 160 12 33 54 75 96 117 138 159 180 11 32 53 74 95 116 137 158 179 200 10 31 52 73 94 115 136 157 178 199 220 9 30 51 72 93 114 135 156 177 198 219 240 8 29 50 71 92 113 134 155 176 197 218 239 260 7 28 49 70 91 112 133 154 175 196 217 238 259 280 6 27 48 69 90 111 132 153 174 195 216 237 258 279 300 5 26 47 68 89 110 131 152 173 194 215 236 257 278 299 320 4 25 46 67 88 109 130 151 172 193 214 235 256 277 298 319 340 3 24 45 66 87 108 129 150 171 192 213 234 255 276 297 318 339 360 2 23 44 65 86 107 128 149 170 191 212 233 254 275 296 317 338 359 380 1 22 43 64 85 106 127 148 169 190 211 232 253 274 295 316 337 358 379 400 21 42 63 84 105 126 147 168 189 210 231 252 273 294 315 336 357 378 399 41 62 83 104 125 146 167 188 209 230 251 272 293 314 335 356 377 398 61 82 103 124 145 166 187 208 229 250 271 292 313 334 355 376 397 81 102 123 144 165 186 207 228 249 270 291 312 333 354 375 396 101 122 143 164 185 206 227 248 269 290 311 332 353 374 395 121 142 163 184 205 226 247 268 289 310 331 352 373 394 141 162 183 204 225 246 267 288 309 330 351 372 393 161 182 203 224 245 266 287 308 329 350 371 392 181 202 223 244 265 286 307 328 349 370 391 201 222 243 264 285 306 327 348 369 390 221 242 263 284 305 326 347 368 389 241 262 283 304 325 346 367 388 261 282 303 324 345 366 387 281 302 323 344 365 386 301 322 343 364 385 321 342 363 384 341 362 383 361 382 381 等等,依次类推,只需要改的N的值,就能自动的达到正确的结果!~ * * * */
如果不是第一次接触这类型的题,半个小时还是有点太紧了,一个小时左右还是可以的!~我第一次看到这个题,用了一个小时!!~
相关推荐
java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法大全源码java算法...
Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...
JAVA算法编程题目及答案 本资源提供了50道JAVA算法编程题目及答案,涵盖了算法设计、数据结构、程序设计等多个方面的知识点。以下是对标题、描述、标签和部分内容的详细解释: 标题:JAVA算法编程题目及答案 本...
java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用数据结构java算法大全,常用...
Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。这份资料主要针对使用Java语言进行算法实现的开发者,适用于那些对ANT、EJB、J2EE、JAVA和SPRING等技术栈有了解或兴趣的人群。下面我们将深入...
Java算法设计涵盖了许多核心编程概念,是解决复杂问题的关键工具。这个压缩包文件包含了各种算法的实现,让我们逐一探讨它们。 1. **排序算法**:排序是数据处理的基础,这里可能包括了各种经典排序算法,如快速...
从给定的文件信息来看,标题“Java算法PDF版”暗示了这是一份关于Java编程语言中的算法应用和实现的资料。尽管描述部分没有提供太多具体的信息,仅表达了分享的意愿,但我们可以根据标题和可能包含的内容来深入探讨...
Java遗传算法排课系统是一种利用遗传算法解决复杂优化问题的软件应用。在教育领域,排课是一个典型的组合优化问题,需要考虑多方面的约束条件,如教师时间冲突、教室容量限制、课程时间安排等。遗传算法作为一种启发...
JAVA经典算法面试39题及答案 本资源总结了39道经典的 JAVA 算法面试题目,每个题目都附带答案,涵盖了常见的算法问题,旨在帮助读者更好地掌握 JAVA 编程语言和算法设计。 算法概述 算法是计算机科学中最重要的...
首先,让我们详细探讨一下Java算法的重要性。算法是解决问题的步骤或方法,是计算机科学的基础。在Java编程中,良好的算法设计和实现能力能够极大地提高代码的效率和可读性。通过解决这些算法题,开发者可以锻炼逻辑...
Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典...
共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题
《Java算法设计与题解》是一本专注于Java编程语言中的算法设计和问题解决的书籍,旨在帮助读者深入理解和掌握各种经典算法,并通过编程实例来提升实际应用能力。书中的内容涵盖了算法的基础理论、核心思想以及在Java...
算法 冒泡等 java 算法 经典算法 好的算法 程序员必读
本文将深入探讨“JAVA算法分析”,旨在帮助读者从深层次理解Java语言,并结合算法思想提升编程能力。 首先,Java语言为实现高效算法提供了良好的支持。其面向对象的特性使得代码更易于组织和复用,接口、抽象类和...
JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2),JAVA 经典算法书集合(2)JAVA 经典算法书集合...
近100算法,有利于学习java算法。值得好好学习和借鉴。
Java经典算法汇总 Java经典算法汇总.pdf中提供了多种排序算法的实现,包括冒泡排序、选择排序和插入排序。这些算法都是Java语言中最基本和最常用的排序算法。 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它...
Description: Java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法java经典算法 Tags: Java经典算法 Java经典算法合集是Java编程语言中的一些经典算法的集合,这些算法涵盖了...
JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1),JAVA 经典算法集合(1)JAVA 经典算法集合(1),JAVA 经典...