zoukankan      html  css  js  c++  java
  • 剑指offer【01】 二维数组中的查找(Java)

    在经历了春招各大公司的笔试题和面试官的血虐之后,决定要刷一些算法题了,不然连面试机会都没有。

    而应对笔试和面试,比较出名的就是剑指offer的题目和LeetCode的题目了。剑指offer应对面试中的手撕代码,leetcode主要应对线上笔试。本文的剑指offer题目是在牛客网做的,一共有66题,我是按默认的顺序往下做的。牛客网直达链接:https://www.nowcoder.com/activity/oj

    题目:二维数组中的查找

    考点:数组

    描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
     
    解题思路:从左下角元素往上查找,右边元素是比这个元素大,上边是的元素比这个元素小。于是,target比这个元素小就往上找,比这个元素大就往右找。如果出了边界,则说明二维数组中不存在target元素。
     
    java版本
     1 public class Solution {
     2     public boolean Find(int target, int [][] array) {
     3         //获取二维数组的行数
     4         int row = array.length;
     5         //获取二维数组的列数
     6         int col = array[0].length;
     7         int j = 0;
     8         while(row > 0 && j < col){
     9             //从数组的左下角开始判断
    10             if(target > array[row-1][j]){
    11                 //往右移
    12                 j++;
    13             }else if(target < array[row-1][j]){
    14                 //往上移
    15                 row--;
    16             }else{
    17                 return true;
    18             }
    19         }
    20         return false;
    21     }
    22 }

    刚开始不懂怎么下手,看了一下别人的解题思路,理解题目后还是能写出来了。

  • 相关阅读:
    XML学习教程
    JSON 的含义?
    局域网共享问题全方位解决
    VMware虚拟化培训手册
    信息化建设中的IT规划精要
    洛谷1265 公路修建
    洛谷1144 最短路计数
    NOI题库05 派
    NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )
    vijosP1014 旅行商简化版
  • 原文地址:https://www.cnblogs.com/linliquan/p/10582816.html
Copyright © 2011-2022 走看看