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

题目描述

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

import java.util.*;
public class Solution {
	public static int[][] array;//全局变量
    /*在网站中直接写这段即可
     public boolean Find(int target,int [][] array)
    {
        for (int i=0;i<array.length;i++)
            for(int j=0;j<array[i].length;j++)
            {
                if(array[i][j] == target)
                    return true;
            }
        return false;
    }*/
    public static void main(String arg[])
    {
    	Scanner s=new Scanner(System.in);
    	System.out.println("输入行数:");
    	int i=s.nextInt();
    	System.out.println("输入列数:");
    	int j=s.nextInt();
    	int [][]array=new int[i][j];
    	System.out.println("输入元素:");
    	for(int t=0;t<i;t++) {
    		for(int k=0;k<j;k++) {
    			array[t][k]=s.nextInt();//输入的数存入数组里
    		}
        }
    	for (int x = 0; x < array.length; x++) {
            Arrays.sort(array[x]);  // 直接调用数组arrays里的sort()这个方法对里边的一维数组进行排序   
        }  
        for (i=0;i<array.length;i++) {  
            for (j=0;j<array[i].length; j++) {  
                System.out.print(array[i][j] + "   ");  
            }  
            System.out.println();//输出有序数组
       }
        System.out.println("输入查找的数:");
        int target=s.nextInt();
        boolean cunzai = false;
        for (i=0;i<array.length;i++) {//判断,直接搜索
            for(j=0;j<array[i].length;j++)
            {
                if(array[i][j] == target)
                	cunzai = true;
            }
        }
        if(cunzai)
        	System.out.println("存在");
        else
        	 System.out.println("不存在");
    }
}

猜你喜欢

转载自blog.csdn.net/fenger_c/article/details/79720183
今日推荐