码迷,mamicode.com
首页 > 编程语言 > 详细

二维数组中的查找-牛客网-剑指offer

时间:2015-10-19 23:59:23      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:

1.问题描述

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

2.问题分析

  水平方向、垂直方向二重循环查找

3.源代码

package www.nowcoder.com.conquerOffer.array;

/**
 * 二维数组中的查找
 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 * http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 * @author sunny
 *
 */
public class TwoDimensionalArrayFind {
    /**
     * 二维数组查找
     * @param array 二维数组
     * @param target 目标数字
     * @return 是否找到(true:找到;false:没找到) 
     */
    public boolean Find(int [][] array,int target) {
        //判断二维数组是否为空
        if(null == array || array.length <= 0)
            return false;
        for(int i = 0; i < array.length; i++){
            //判断一维数组是否为空
            int[] arr = array[i];
            if(null == arr || arr.length <= 0)
                continue;
            for(int j = 0; j < arr.length; j++){
                if(target == arr[j]){
                    System.out.println("array[" + i + "][" + j + "]=" + target);
                    return true;
                }
            }
        }
        return false;
    }
    
    public static void main(String[] args) {
        int[][] array = new int[][]{{1, 2},{3, 4, 5, 6},{},{7, 8, 9, 10, 11},{12}};
//        int[][] array = new int[][]{};
        TwoDimensionalArrayFind twoDimensionalArrayFind = new TwoDimensionalArrayFind();
        boolean isFind = twoDimensionalArrayFind.Find(array, 10);
        System.out.println(isFind);
    }
}

 

4.运行效果

技术分享
1 array[3][3]=10
2 true
View Code

 

二维数组中的查找-牛客网-剑指offer

标签:

原文地址:http://www.cnblogs.com/sunny08/p/4893294.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!