首页 > 代码库 > 剑指Offers 题目1384:二维数组中的查找
剑指Offers 题目1384:二维数组中的查找
题目1384:二维数组中的查找
题解报告:一道典型的二分查找题,用C++做居然超时>1000MS,郁闷半天!,该成C,提交680MS过,C还是很快的!
#include <stdio.h>#include <stdlib.h>int a[1010][1010];int main(){ int m, n, t; int flag; while(scanf("%d%d", &m, &n) !=EOF){ scanf("%d", &t); for(int i=0; i<m; i++) for(int j=0; j<n; j++) scanf("%d", &a[i][j]); for(int i=0; i<m; i++){ flag = 1; //if(!binary_Search(a[i], 0, n-1, t)) // { /// flag = 0; // break; // } int left=0, right=n-1; while(left <= right){ int mid = (left+right)>>1; if(a[i][mid] > t){ right = mid - 1; }else if(a[i][mid] < t){ left = mid + 1; }else{ flag=0; break; } } if(!flag) break; } if(!flag) printf("Yes\n"); else printf("No\n"); } return 0; } /************************************************************** Problem: 1384 User: qiu0130 Language: C Result: Accepted Time:680 ms Memory:4900 kb****************************************************************/
剑指Offers 题目1384:二维数组中的查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。