• leetcode之Search a 2D Matrix


    写在前面的话-----

    1:师兄给的豆瓣上关于leetcode上题目的分类。http://www.douban.com/note/330562764/?qq-pf-to=pcqq.c2c

    2:上周五老板给开会,针对毕设的事情问了我70分钟,其中不乏刁难的成分。但是转换角度,这样可以督促自己学术严谨。论文是一方面,工作是非常重要的,就像师兄说的一开始不能给自己定的目标太低,否则真的就会有一个低的起点。下面是引用师兄的话:

    学习这种事情不要认为你以后不从事这个就不学了。

    第一你可能真的会干技术

    第二好多东西是相通的

    第三思考是一种习惯

    第四你因为困难放弃一次,肯定会有第二次

    只是因为你害怕,所以不敢做

    做就行了,不然老是闲着总是在犹豫选择中恐惧。

    每个人身边都有一只叫运气”的精灵,他们能给主人带来好运,刚开始的时候,它可能连帮你抵御衰运的技能也没有,可是碰的每一次壁,遇到的每一个挫折,吃的每一次亏,精灵都会默默吞食。等有一天,它打个饱嗝,之前遭遇的一切痛苦都会化作美好的事物出现。

    有的时候压力和偏见往往不是来自别人。更多的是需要纠结自己的偏见,认可自己。

    一切不动手不实战的学习编程语言都是耍流氓。

    像超级马里奥一样,一路吃点小蘑菇,然后跳到旗杆上扯旗子,换到高级场景接着小跑顶蘑菇。

    加油,你是打不死的!!

    ------------------------------------------------------------

    这道题和剑指offer中关于数组那一节的面试题3是一样的。解决的思路就是首先和最右上角的数比较,如果要查找的数小于右上角的数,则可以不再比较这个数所在的一列,如果要查找的数大于这个数,则不再比较这一行。每一次都在数组的查找范围内提出一行或一列,一步步缩小,直到找到要查找的数,或查找范围为空。

    在这道题里面,首先练习了java中二维数组的使用,其次练习了如何从键盘上输入字符。

    下面附上这道题的源码:

    public class solution {
      public static boolean searchMatrix(int[][] matrix, int target) {
        int rows = matrix.length;
        int row = 0 ;
        int columns = matrix[0].length;
        int column = columns - 1;
        while(row < rows&column>=0){
          if(target == matrix[row][column]){
            return true;
          }
          else{
            if(target < matrix[row][column]){
            column--;
            }
            else{
              row++;
              }
          }
        }
        return false;
      }
    public static void main(String[] args){
      Scanner input = new Scanner(System.in);
      System.out.println("please input rows");
      int rows = input.nextInt() ;
      System.out.println("please input columns");
      int columns = input.nextInt();
      int[][] matrix = new int[rows][columns];
      for(int i = 0;i<rows;i++){
        for(int j = 0;j<columns;j++){
          System.out.println("please input :");
          matrix[i][j] = input.nextInt();

        }
      }
      int target = 7;
      boolean s = searchMatrix(matrix,target);
      System.out.println(s);

      }
    }

    博客好久没写了,加油坚持下去,我将继续在这里分享我的心情,以及学到的东西。

  • 相关阅读:
    求解整数集合的交集(腾讯笔试)
    关于屏幕适配之比例布局
    (转)注册JNI函数的两种方式
    正则表达式记录
    当年一个简单可用的多线程断点续传类
    最近用到的几个工具方法
    Android中包含List成员变量的Parcel以及Parcel嵌套写法示例
    java实现计算MD5
    一个用于去除状态栏和虚拟导航栏的BaseActivity
    MVP的模板
  • 原文地址:https://www.cnblogs.com/gracyandjohn/p/4380433.html
Copyright © 2020-2023  润新知