1. 旋转图像
题目:


题解:
就是从下到上每一列变为了每一行,比如第一列变为了第一行,依次类推。
这里需要借用一个辅助数组。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution { public void rotate(int[][] matrix) { int[][] copy = new int[matrix.length][]; for(int i=0;i<matrix.length;i++){ copy[i] = Arrays.copyOf(matrix[i],matrix[i].length); }
for(int i =0;i<matrix.length;i++){ for(int j = 0;j<matrix.length;j++){ matrix[j][matrix.length-i-1] = copy[i][j]; } }
} }
|
2. 搜索二位矩阵II
题目:



题解:
非常经典的二分查找,对每一行进行二分就可以。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { public boolean searchMatrix(int[][] matrix, int target) { for(int i=0;i<matrix.length;i++){ if(is(matrix[i],target)) return true; } return false; }
boolean is(int[] matrix, int target) { int left = 0; int right = matrix.length-1; while(left<=right){ int mid = (left+right)/2; if(matrix[mid] == target) return true;
if(matrix[mid] > target){ right = mid-1; }else{ left = mid+1; } } return false; } }
|