/*********************************
* 日期: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多种思路实现):二维数组中的查找 面试4题: 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个...
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: ...
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 同...
【Python学习-列表-类-循环】【剑指offer】之二维数组中的查找基础知识二维数组中的查找测试结果c++版本 基础知识 Python中关于数组及len的操作详情可参考link,link。 二维数组中的查找 题目: 在一个二维数组中...
二维数组中的查找 题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组...
# Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题...
面试题 1:二维数组中的查找(考点: 数组) 1 面试题 2:替换空格(考点: 字符串) 2 面试题 3:从尾到头打印链表(考点: 链表) 2 面试题 4:重建二叉树(考点: 树) 4 面试题 5:用两个栈实现队列(考点: 栈和...
3. 二维数组中查找目标值 4. 替换字符串中的空格 5. 从尾到头打印链表 6. 由前序和中序遍历重建二叉树 7. 用两个栈实现队列 8. 求旋转数组的最小数字 9. 斐波那契数列的第n项(青蛙跳台阶) 10. 二进制中1的...
面试题03:二维数组中的查找 面试题06:重建二叉树 面试题08:旋转数组中的最小数 面试题10:二进制中1的个数 面试题14:调整数组顺序使奇数位于偶数前面 面试题18:树的子结构 面试题20:顺时针打印矩阵 面试题21:...
二维数组中的查找: 替换空格: 从尾到头打印链表: 重建二叉树: 用两个栈来实现队列: 旋转数组的最小数字: 斐波那契数列: 跳台阶: 跳台阶2: 矩形覆盖: 二进制中1的个数 数值的整数次方: 调整数组顺序,使奇数位于偶数...
剑指offer_Python版数组篇1.二维数组中的查找6.旋转数组中的最小值11.调整数组使奇数位于偶数前面19.顺时针打印矩阵28.数组中出现次数超过一半的数字30.连续子数组最大和32.把数组排出最小的数35.数组中的逆序对37....
剑指offer第4题,二维数组查找,已过牛客网。
1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否...
二维数组中的查找 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...
1、二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断...
面试题04:二维数组中的查找 +2 有序矩阵查找 面试题05:替换空格 +2 查找 面试题06:从尾到头打印链表 +2 栈+双数组 面试题07:重建二叉树 +2 递归 面试题09:用两个栈实现队列 +2 双栈 面试题10 - I:斐波那契数列...
二维数组中的查找 -> 替换空格 -> (中文版) 从尾到头打印链表 -> (中文版) 重建二叉树 -> 暂无 用两个栈实现队列 -> 斐波那契数列/青蛙跳台阶 -> 旋转数组的最小数字 -> √矩阵中的路径 -> 机器人的运动范围 -> ...
二维数组中的查找 - - leetcode 240 | lintcode 38 替换空格 从尾到头打印链表 重建二叉树 - - leetcode 105 | lintcode 73 用两个栈实现队列 - - leetcode 232 | lintcode 40 旋转数组的最小数字 - - leetcode 153 ...