zoukankan      html  css  js  c++  java
  • 剑指No1

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    *基于题目整体思路(题目相关扩展思路):
    1.构造满足条件的二维数组
    2.遍历检查构造的数组是否正确
    3.去二维数组中查找是否存在该整数。
    *本题目的准确解法
    public static void  main(String [] args){
    int value = 560;
    int times = 0;
    int n = 10;
    int arry[][] = new int[n][n];
    //随机生成满足条件的二维数组
    for(int i = 0;i<arry.length;i++){
    for(int j=0;j<arry[i].length;j++){
    if(j==0) {
    if(i == 0) {
    arry[i][j] = (int) (Math.random() * 100) + 1;
    }else{
    int rowgap = (int)(Math.random()*100)+1;
    arry[i][j] = arry[i-1][j]+rowgap;
    }
    }else{
    if(i ==0){
    int columgap = (int)(Math.random()*100)+1;
    arry[i][j] = arry[i][j-1]+columgap;
    }else{
    int rowcolgap = (int)(Math.random()*100)+1;
    if(arry[i-1][j]<arry[i][j-1]){
    arry[i][j] = arry[i][j-1]+rowcolgap;
    }else{
    arry[i][j] = arry[i-1][j]+rowcolgap;
    }
    }
    }
    }
    }
    //遍历输出数组 检验数组是否构造正确
    for( int i = 0 ;i<arry.length;i++){
    for(int j = 0;j<arry[i].length;j++){
    if(j<n-1){
    System.out.print(arry[i][j]+" ");
    }else{
    System.out.println(arry[i][j]);
    }
    }
    }
    //遍历查找二维数组中是否存在该值
    int row = arry.length -1 ;
    int colum = 0;
    int flag = 0;
    for (int k = row;k>=0; k --){
    for(int b = colum ;b<arry.length; b ++){
    if(value == (arry[row][colum])){
    times =times +1;
    flag = 1;
    break;
    }else if(value>(arry[row][colum])){
    times = times + 1;
    colum =colum + 1;
    }else{
    times = times + 1;
    row = row -1;
    break;
    }
    }
    if(flag==1) {
    System.out.print("查找了" + times+"次"+"Exist the value of " + value );
    break;
    }else if(k==0){
    System.out.print("查找了" + times+"次"+"Not exist the value of "+value);
    }
    }
    }

    效果图:

    
    
    //*本题目的准确解法:(自行体会)

    
    
  • 相关阅读:
    【整理】Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
    C/C++中printf和C++中cout的输出格式
    左值的理解(给渴望学习的新手)
    c++ 指针精髓
    c++中的函数前面加个LRESULT是什么意思啊?
    pb调用vc写的动态链接库文件
    C++问题 & *用法
    vs2008下MFC内存泄露问题一点经验
    mysql5.6.41winx64安装
    开发是一件需要非常小心的工作
  • 原文地址:https://www.cnblogs.com/teyues/p/12890448.html
Copyright © 2011-2022 走看看