一个程序员的自我算法练习

算法日常练习-1

2018-11-23  本文已影响0人  _wwwwpr

Q : 在一个二维数组中,从左到右,从上到小都是递增的。查找数组中的某一个元素

package searchMatrix;

/**
 * 在一个二维数组中,从左到右,从上到小都是递增的。查找某一个数
 */
public class SearchElement {

    public int[][] arr;

    public SearchElement(){
        arr = new int[][]{ {1,2,4,8},
                        {3,6,12,13},
                        {5,7,13,15},
                        {8,9,16,17}};
    }

    /**
     * 从右上角查找,如果相等返回。
     * 如果右上角小于data 删除行
     * 如果右上角大于data 删除列
     */
    public boolean findElement(int[][] arr,int data){
        int rows = arr.length;  //行
        int columns = arr[0].length;    //列
        int row = 0;
        int column = columns-1;
        while (row < rows && column>=0){
            if (data == arr[row][column]){
                return true;
            }
            if (arr[row][column] > data){
                column--;
            }else {
               row++;
            }
        }
        return false;
    }
}

上一篇下一篇

猜你喜欢

热点阅读