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

剑指Offer之1384:二维数组中的查找

 
阅读更多
/*********************************
*   日期:2013-10-11
*   作者:SJF0115
*   题号: 九度OJ 题目1384:二维数组中的查找
*   来源:http://ac.jobdu.com/problem.php?pid=1384
*   结果:AC
*   来源:剑指Offer
*   总结:
**********************************/
#include<stdio.h>
#define N 1001

int Matrix[N][N];

int Find(int Matrix[N][N],int m,int n,int t){
	//从矩阵的右上角查起
	int row = 0;
	int col = n - 1;
	while(row < m && col >= 0){
		int number = Matrix[row][col];
		//如果该数字等于要查找的数据,查找过程结束
		if(number == t){
			return 1;
		}
		//如果该数字小于要查找的数据,查找的数据肯定在该数据的下方,即剔除这个数据所在的行
		else if(number < t){
			row++;
		}
		//如果该数字大于要查找的数据,查找的数据肯定在该数据的左方,即剔除这个数据所在的列
		else{
			col--;
		}
	}
	return 0;
}

int main(){
	int m,n,t,i,j;
	while(scanf("%d %d",&m,&n) != EOF){
		scanf("%d",&t);
		//输入矩阵
		for(i = 0;i < m;i++){
			for(j = 0;j < n;j++){
				scanf("%d",&Matrix[i][j]);
			}
		}
		//查找数据
		int result = Find(Matrix,m,n,t);
		if(result == 1){
			printf("Yes\n");
		}
		else{
			printf("No\n");
		}
	}
	return 0;
}


【分析】







【第二种方法】

此题考查的主要是第一种方法的解题思路。

#include<stdio.h>

int main()
{   
    int i,j,m,n,t,number,flag;
    while (scanf("%d %d",&m, &n) != EOF)
    {
        flag = 0;
        scanf("%d",&t);
        for(i = 0; i < m; i++)
            for(j = 0; j < n; j++)
            {
                scanf("%d",&number);
                if(t == number)
                {   
                    flag = 1;                                                  
                }
            }
        if(flag == 1)
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n"); 
        }
    }
    return 0;
}





分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    剑指offer(java版67题)

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

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

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

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

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

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

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

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

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

    No4_fliesdm7_familywbh_剑指offer_

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

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

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

    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...

    牛客的代码leetcode代码区别-Algorithm::backhand_index_pointing_right:剑指offer;:backhand_index_pointing_right:leetcode;

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

    leetcode迷宫问题-LeetCode:LeetCode刷题之剑指offer系列

    面试题04:二维数组中的查找 +2 有序矩阵查找 面试题05:替换空格 +2 查找 面试题06:从尾到头打印链表 +2 栈+双数组 面试题07:重建二叉树 +2 递归 面试题09:用两个栈实现队列 +2 双栈 面试题10 - I:斐波那契数列...

    leetcode中文版-jianzhi-Offer-Leetcode:剑指Offer与Leetcode对应题目

    二维数组中的查找 -&gt; 替换空格 -&gt; (中文版) 从尾到头打印链表 -&gt; (中文版) 重建二叉树 -&gt; 暂无 用两个栈实现队列 -&gt; 斐波那契数列/青蛙跳台阶 -&gt; 旋转数组的最小数字 -&gt; √矩阵中的路径 -&gt; 机器人的运动范围 -&gt; ...

    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