• 剑指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 }

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

  • 相关阅读:
    Python学习——列表
    第04组 Alpha冲刺(3/6)
    第04组 Alpha冲刺(2/6)
    第04组 Alpha冲刺(1/6)
    第04组 团队Git现场编程实战
    第04组 团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第4组 团队展示
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/linliquan/p/10582816.html
Copyright © 2020-2023  润新知