`
SunnyYoona
  • 浏览: 366849 次
社区版块
存档分类
最新评论

[剑指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;
}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    【Python学习-列表-类-循环】【剑指offer】之二维数组中的查找

    【Python学习-列表-类-循环】【剑指offer】之二维数组中的查找基础知识二维数组中的查找测试结果c++版本 基础知识 Python中关于数组及len的操作详情可参考link,link。 二维数组中的查找 题目: 在一个二维数组中...

    《剑指Offer》题目及代码.zip

    3. 二维数组中查找目标值 4. 替换字符串中的空格 5. 从尾到头打印链表 6. 由前序和中序遍历重建二叉树 7. 用两个栈实现队列 8. 求旋转数组的最小数字 9. 斐波那契数列的第n项(青蛙跳台阶) 10. 二进制中1的...

    《剑指Offer》系列一——二维数组中的查找

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

    (一)剑指offer—Python版—数组篇

    剑指offer_Python版数组篇1.二维数组中的查找6.旋转数组中的最小值11.调整数组使奇数位于偶数前面19.顺时针打印矩阵28.数组中出现次数超过一半的数字30.连续子数组最大和32.把数组排出最小的数35.数组中的逆序对37....

    剑指Offer(Python多种思路实现):二维数组中的查找

    剑指Offer(Python多种思路实现):二维数组中的查找 面试4题: 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个...

    leetcode中国-LeetCode-Go:力码围棋

    二维数组中的查找 Y Y Y 剑指 Offer 05. 替换空格 Y Y Y 剑指 Offer 10- I. 斐波那契数列 Y Y Y 剑指 Offer 10- II. 青蛙跳台阶问题 Y Y Y 剑指 Offer 11. 旋转数组的最小数字 Y Y Y 剑指 Offer 14- I. 剪绳子 Y Y Y...

    剑指Offer:二维数组中的查找(Python)

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

    Python《剑指offer》算法实现-二维数组查找

    # Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...

    4:二维数组中的查找(剑指offer第2版Python)

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

    【剑指offer】面试题4-二维数组中的查找-完整的可执行代码(Java)

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

    数据结构与算法——数组(剑指offer拓展篇)

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

    leetcode新手刷题指南-AlgorithmEmmiter:刷剑指Offer和Leetcode

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

    剑指offer(java版67题)

    面试题 1:二维数组中的查找(考点: 数组) 1 面试题 2:替换空格(考点: 字符串) 2 面试题 3:从尾到头打印链表(考点: 链表) 2 面试题 4:重建二叉树(考点: 树) 4 面试题 5:用两个栈实现队列(考点: 栈和...

    No4_fliesdm7_familywbh_剑指offer_

    剑指offer第4题,二维数组查找,已过牛客网。

    leetcode二维数组-programming_exercises:leetcode、nowcoder刷题之路

    二维数组中的查找: 替换空格: 从尾到头打印链表: 重建二叉树: 用两个栈来实现队列: 旋转数组的最小数字: 斐波那契数列: 跳台阶: 跳台阶2: 矩形覆盖: 二进制中1的个数 数值的整数次方: 调整数组顺序,使奇数位于偶数...

    剑指offer刷题(一)

    二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组...

    jianzhi-offer:剑指offer面试题-javascript版源码与测试用例

    面试题03:二维数组中的查找 面试题06:重建二叉树 面试题08:旋转数组中的最小数 面试题10:二进制中1的个数 面试题14:调整数组顺序使奇数位于偶数前面 面试题18:树的子结构 面试题20:顺时针打印矩阵 面试题21:...

    leetcode三角形打印-LeetCode-classify:用于归类总结其中的一类题型

    二维数组中的查找 5. 替换空格 6. 从尾到头打印链表 7. 重建二叉树(前、中;前、后;中、后) 9.二个栈实现队列 10.1 斐波那契数列 10.2 青蛙跳台阶问题 11. 旋转数组的最小数字 12. 矩阵中的路径 13. 机器人的运动...

    leetcode-jian-zhi-offer:剑指Offer50题视频讲解

    二维数组中的查找 - - leetcode 240 | lintcode 38 替换空格 从尾到头打印链表 重建二叉树 - - leetcode 105 | lintcode 73 用两个栈实现队列 - - leetcode 232 | lintcode 40 旋转数组的最小数字 - - leetcode 153 ...

Global site tag (gtag.js) - Google Analytics