zoukankan      html  css  js  c++  java
  • (java)剑指offer二维数组中的查找

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

    public class 二维数组中的查找 {
    	/*
    	 * 最初反应是遍历一遍,但是数组从左到右和从上到下都是递增的,那么可以把二维数组的右上角
    	 * 作为初始比较位置。比如从右上角开始,假设右上角的数为x,输入数值为y。如果y<x,那就直接往左找,如果 y>x,就向下一行。
    	 */
        public static boolean Find(int target, int[][] array) {
        	/*二维数组可以理解成一个一维数组里的每个元素都是一个数组
    		 * 定义一个整型数组:3行4列
    		 * int a[][] = new int[3][4]; 
    		 * 获取行数---3行 int lenY = a.length;
    		 * 获取列数---4列 int lenX = a[0].length;
    		 * 
    		 */
        	int row=0;
            int col=array[0].length-1;
            int rowlength= array.length;
            int collength=array[0].length;
        	//这个地方一开始没有考虑到,实际写算法的时候应该考虑到各种输入值。
            if(rowlength==0 || collength==0){
                return false;
            }
    		
            while(row<rowlength && col>=0){
                //while(row<array.length && col>=0){
                    if(target>array[row][col]){
                        row++;
                    }
                    else if(target<array[row][col]){
                        col--;
                    }
                    else
                        return true;
                }
             return false;
        }
    }
  • 相关阅读:
    Javaweb学习12.4
    Javaweb学习11.23
    Javaweb学习11.29
    Javaweb学习12.3
    Javaweb学习12.1
    Javaweb学习11.27
    2020年8月25日Java学习日记
    2020年8月18日Java学习日记
    2020年8月22日Java学习日记
    2020年8月21日Java学习日记
  • 原文地址:https://www.cnblogs.com/xiuzhublog/p/12608543.html
Copyright © 2011-2022 走看看