packagetop100.top矩阵;importjava.util.ArrayList;importjava.util.List;publicclassTOP{//73. 矩阵置零//额外空间将有0的行列存储下来,再置0publicvoidsetZeroes(int[][] matrix){int m = matrix.length;int n = matrix[0].length;boolean[] row =newboolean[m];boolean[] col =newboolean[n];for(int i =0; i < m; i++){for(int j =0; j < n; j++){if(matrix[i][j]==0){row[i]= col[j]=true;}}}for(int i =0; i < m; i++){for(int j =0; j < n; j++){if(row[i]|| col[j]){matrix[i][j]=0;}}}}//54. 螺旋矩阵//直接转圈遍历,每遍历行或列,就修改行列的索引publicList<Integer>spiralOrder(int[][] matrix){List<Integer> res =newArrayList<>();int m = matrix.length, n = matrix[0].length;int top =0, bottom = m -1, left =0, right = n -1;//定义四个边界,遍历完边界,更新边界int count = m * n;//元素个数while(count >0){//遍历top行for(int i = left; i <= right && count >0; i++){res.add(matrix[top][i]);count--;}top++;//遍历right列for(int i = top; i <= bottom && count >0; i++){res.add(matrix[i][right]);count--;}right--;//遍历bottom行for(int i = right; i >= left && count >0; i--){res.add(matrix[bottom][i]);count--;}bottom--;//遍历left列for(int i = bottom; i >= top && count >0; i--){res.add(matrix[i][left]);count--;}left++;}return res;}//48. 旋转图像//只能靠找规律了//先上下交换,再对角线交换publicvoidrotate(int[][] matrix){int n = matrix.length;//上下交换for(int i =0; i < n /2; i++){for(int j =0; j < n; j++){int v = matrix[n - i -1][j];matrix[n - i -1][j]= matrix[i][j];matrix[i][j]= v;}}//对角线交换for(int i =0; i < n; i++){for(int j = i +1; j < n; j++){int v = matrix[i][j];matrix[i][j]= matrix[j][i];matrix[j][i]= v;}}}//240. 搜索二维矩阵 II//一看到搜索和排序,就联想到2分法publicbooleansearchMatrix(int[][] matrix,int target){int m = matrix.length, n = matrix[0].length;int i = m -1, j =0;//从左下角开始搜索while(i >=0&& j < n){if(matrix[i][j]> target){i--;}elseif(matrix[i][j]< target){j++;}else{returntrue;}}returnfalse;}}
顾x文
SQLite3数据的使用实现了多线程UDP数据收发功能Qt多线程的同步和异步熟悉GDB的调试了解Mysql的性能优化熟悉常见算法:快速排序、希尔排序、归并排序基于Nginx C Mysql Python ICE开发熟练Boost库负责搭建后台服务端,使用Nginx展示前端界面&am…
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家 👉点击跳转到教程 报错问题截图 报错原因已经给出:
You need Java 11 or higher to build your app with this version of G…