zoukankan      html  css  js  c++  java
  • Java算法

    在一个二维数组中(每个一维数组的长度相同),且数据每一行从左到右递增,从上到下递增。请编写一个函数,输入一个二维数组和一个整数,判断数组中是否有此整数。

    分析:如果从左上角第一个数开始的话,往右和往下数都比它大,假设已给的数比它大的话,它不知道该从哪个方向搜索;若从左下角开始的话,往上搜索是比它小的数,往右搜索是比它大的数,故从这个数开始搜索比较好;右上角和右下角以此类推,故选择左下角和右上角是最好的策略。以右上角为例,代码如下:

    public class Solution {
        public boolean Find(int target, int [][] array) {
            if(array.length==0 || array[0].length==0)
                return false;
            int m = array[0].length-1;
            int n = 0;
            int temp = array[n][m];
            while(target != temp){
                if(m>0 && n<array.length-1){
                    if(target>temp){
                        n = n + 1;
                    }else if(target<temp){
                        m = m - 1;
                    }
                    temp = array[n][m];
                }else{
                    return false;
                }
            }
            return true;
        }
    }
    

     原文地址:https://www.weiweiblog.cn/find2array/ 

  • 相关阅读:
    Python multiprocessing相关疑问
    Tornado demo3
    WebSockets
    Tornado Demo1---webspider分析
    Python assert断言
    Python学习之--数据基础
    Python学习之--python概要
    Python学习之--函数/生成器/装饰器
    Python学习之文件操作
    Python操作MySQL数据库
  • 原文地址:https://www.cnblogs.com/warriors-curry/p/10467317.html
Copyright © 2011-2022 走看看