zoukankan      html  css  js  c++  java
  • 剑指Offer-编程详解-二维数组中的查找

    • 题目描述

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

    • 解析

    特点:横坐标递增有序,纵坐标递增有序
    方法1:横坐标二分查找,纵坐标二分查找;
    方法2:假设矩阵从左下角增长,则有规律:矩阵左上角的元素,递减向下,递增向右。
    则:从左上角元素比较,小于target则向下移动,大于target则向右移动;

    • 代码:
    public class Solution {
        public boolean Find(int target, int [][] array) {
            int row = array.length;// 行数
            int col = array[0].length;// 列数
            for (int i = row - 1, j = 0; i >= 0 && j <= col - 1;) {// i,j只初始化一次,拿取左上角元素
                if (array[i][j] == target) {
                    return true;
                } else if (array[i][j] < target) {
                    j++;
                } else {
                    i--;
                }
            }
            return false;
        }
    }
  • 相关阅读:
    Intellij Idea非常6的10个姿势!
    java 集合
    oracle sql调优
    springboot
    整理的java jdk1.8跟mybatiseplus
    java8中lambda的用法(map转list,list转map等等
    遍历数组中的元素(含es6方法)
    云计算初探
    转FMS小工具用法
    Flex内存消耗
  • 原文地址:https://www.cnblogs.com/gavincoder/p/10665591.html
Copyright © 2011-2022 走看看