室内设计师证搜索引擎优化的办法有哪些
思路:
这种题我第一次确实没做出来,第一次做的时候一圈一圈处理,发现圈数越往里,越乱,原来之前是没从圈数开始遍历。思路:第一个大循环先遍历圈数,一共遍历n/2圈,如果是奇数那就最后处理中间那个小点就行,然后是在每一圈有四条边,我们对每一条边进行处理,每条边采用左闭右开的区间,每条边的最后一个点交给下一条边来进行处理,这样代码就不会乱了
代码:
class Solution {public int[][] generateMatrix(int n) {int[][] nums = new int[n][n];int startX = 0;int startY = 0;int offset = 1;int loop = 1;int count = 1;int i, j;while (loop <= n / 2) {for (j = startY; j < n - offset; j++) {nums[startX][j] = count++;}for (i = startX; i < n - offset; i++) {nums[i][j] = count++;}for (; j > startY; j--) {nums[i][j] = count++;}for (; i > startX; i--) {nums[i][j] = count++;}startX++;startY++;offset++;loop++;}if (n % 2 != 0) {nums[startX][startY] = count;}return nums;}
}