剑指offer java no.04

匿名 (未验证) 提交于 2019-12-02 21:35:18

NO.04: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该数。

public class NO04 {     public static void main(String[] args) {         int [][] matrix = {{1,2,8,9}, {2,4,9,12}, {4,7,10,13}, 		{6,8,11,15}};         int rows = 4;         int columns = 4;         int number = 6;         NO04A no04A = new NO04A();         System.out.println(          no04A.find(matrix, rows, columns, number));     } }  class NO04A{     boolean find(int[][] matrix, int rows,      int columns, int number){         boolean found = false;         if (matrix != null && rows > 0 && columns > 0) {             int row = 0;             int column = columns - 1;             while (row < rows && column >= 0) {                 if (matrix[row][column] == number) {                     found = true;                     break;                 } else if (matrix[row][column] < number) {                     ++row;                 } else {                     --column;                 }             }             System.out.println             ("row: " + row + "column: " + column);         }         return found;     } } 

基本解释:从二维数组的最右上角开始比较,如果比number大,列就向左一个,如果比number小,行就向下一个,如果和number一样,即找到。

文章来源: https://blog.csdn.net/TaylorSwift_1989/article/details/88960290
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!