977. Squares of a So
- 自己写的暴力法,先平方+冒泡排序 TC = n^2
-
//java class Solution { public int[] sortedSquares(int[] nums) { for(int i = 0 ; i < nums.length; i++){ nums[i] *= nums[i]; } int temp = 0; for(int i = 0; i < nums.length; i++){ for(int j =i; j < nums.length; j++){ if(nums[i] > nums[j]){ temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } } return nums; } }
- 双指针TC = n
- 这个排序能在n的原因是因为给的数组本来就是排序好的,如果无序情况下nlogn是最快的
209. Minimum Size Subarray Sum
- 思路
- 这题其实就是暴力解法,主要是细节:
- 在画圈的时候,要保持画每一笔的逻辑相同
- 这里是左闭右开
- 需要定义每一圈的起始位置[start][start]
- 一圈过后offset++
- 其实offset可以通过start转换,但是为了保持可读性这次先不弄
- n为奇数时,中间数字要另外写出
- 在画圈的时候,要保持画每一笔的逻辑相同
- 这题其实就是暴力解法,主要是细节:
-
//java class Solution { public int[][] generateMatrix(int n) { int loop = 0; int start = 0; int[][] res = new int[n][n]; int count = 1; int offset = 1; int i = 0; int j = 0; //假设n = 3 while(loop < n/2){ //top [0][0] - [0][1] for( j = start; j < n - offset; j++){ res[start][j] = count ++; } //right [0][2] - [1][2] for( i = start; i < n -offset; i++){ res[i][j] = count++; } //down [2][2] - [2][1] for( ; j >= offset; j-- ){ res[i][j] = count++; } //left [2][0] - [1][0] for(; i >= offset ; i--){ res[i][j] = count++; } loop++; offset++; start++; } if( n % 2 != 0){ res[start][start] = count; } return res; } }
59. Spiral Matrix II
- 思路
- 这题其实就是暴力解法,主要是细节:
- 在画圈的时候,要保持画每一笔的逻辑相同
- 这里是左闭右开
- 需要定义每一圈的起始位置[start][start]
- 一圈过后offset++
- 其实offset可以通过start转换,但是为了保持可读性这次先不弄
- n为奇数时,中间数字要另外写出
- 在画圈的时候,要保持画每一笔的逻辑相同
- 这题其实就是暴力解法,主要是细节:
-
//java class Solution { public int[][] generateMatrix(int n) { int loop = 0; int start = 0; int[][] res = new int[n][n]; int count = 1; int offset = 1; int i = 0; int j = 0; //假设n = 3 while(loop < n/2){ //top [0][0] - [0][1] for( j = start; j < n - offset; j++){ res[start][j] = count ++; } //right [0][2] - [1][2] for( i = start; i < n -offset; i++){ res[i][j] = count++; } //down [2][2] - [2][1] for( ; j >= offset; j-- ){ res[i][j] = count++; } //left [2][0] - [1][0] for(; i >= offset ; i--){ res[i][j] = count++; } loop++; offset++; start++; } if( n % 2 != 0){ res[start][start] = count; } return res; } }