zoukankan      html  css  js  c++  java
  • [剑指Offer]5.二维数组中的查找

    题目

    在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序。请完毕一个函数,输入这种一个二维数组和一个整数。推断数组中是否含有该整数。

    思路

    [算法系列之三十三]杨氏矩阵

    代码

    /*---------------------------------------
    *   日期:2015-07-19
    *   作者:SJF0115
    *   题目: 5.二维数组中的查找
    *   网址:http://www.nowcoder.com/books/coding-interviews/abc3fe2ce8e146608e868a70efebf62e?rp=1
    *   结果:AC
    *   来源:剑指Offer
    *   博客:
    -----------------------------------------*/
    #include <iostream>
    #include <vector>
    using namespace std;
    
    class Solution {
    public:
        bool Find(vector<vector<int> > array,int target) {
            int row = array.size();
            if(row == 0){
                return false;
            }//if
            int col = array[0].size();
            if(col == 0){
                return false;
            }//if
            int i = 0,j = col - 1;
            while(i < row && j >= 0){
                // 大于目标 剔除这个数字所在的列
                if(array[i][j] > target){
                    --j;
                }//if
                // 小于目标 剔除这个数字所在的行
                else if(array[i][j] < target){
                    ++i;
                }//else
                else{
                    return true;
                }//else
            }//while
            return false;
        }
    };
    
    int main(){
        Solution s;
        vector<vector<int> > matrix = {
                {1,4,7,11,15},
                {2,5,8,12,19},
                {3,6,9,16,22},
                {10,13,14,17,24},
                {18,21,23,26,30}
            };
        int target = 30;
        cout<<s.Find(matrix,target)<<endl;
        return 0;
    }
    
  • 相关阅读:
    延迟为程序集签名
    bootshrap会改变IE浏览器滚动条样式
    Spark算子选择策略
    kafka常用系统命令-1
    数据结构-树
    1.PyCharm 用法
    sql 语句用法
    linux命令
    linux命令
    es的相关知识二(检索文档)
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7400589.html
Copyright © 2011-2022 走看看