剑指Offer(一)二维数组中的查找
来源:互联网 发布:阿里云怎么搭建vpn免流 编辑:程序博客网 时间:2024/06/05 23:53
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
利用二维数组由上到下,由左到右递增的规律,那么选取右上角的元素a[row][col]与target进行比较,当target小于元素a[row][col]时,那么target必定在元素a所在行的左边,即col–;当target大于元素a[row][col]时,那么target必定在元素a所在列的下边,即row++;
public class Solution { public static boolean Find(int target, int [][] array) { if(array==null || array.length<1 || array[0].length<1){//确保输入的是二维数组 return false; } int rows=array.length;//数组行数 int cols=array[0].length;//数组列数 int row=0;//起始右上角元素的行数 int col=cols-1;//起始右上角元素的列数 while(row>=0 && row<rows && col>=0 && col<cols){ if(array[row][col]==target){//右上角元素等于target return true; } else if(array[row][col]>=target){//target小于右上角元素 col--;//左移一列,列数减一 } else{//target大于右上角元素 row++;//下移一行,行数加一 } } return false; } public static void main(String[] args){ int[][] array={ {1,3,7,10}, {2,4,8,11}, {5,6,9,12}, {7,9,13,15} }; //测试 System.out.println(Find(7,array)); System.out.println(Find(0,array)); System.out.println(Find(3,array)); System.out.println(Find(14,array)); System.out.println(Find(7,null)); } }
阅读全文
0 0
- (一)剑指Offer之二维数组中的查找
- 剑指offer(一)二维数组中的查找
- 剑指Offer(一)二维数组中的查找
- 剑指offer(二维数组中的查找)
- 二维数组中的查找(剑指offer)
- 剑指offer:二维数组中的查找(数组)
- 剑指offer(一) 二维数组的查找
- 剑指offer-->二维数组中的查找
- 剑指offer之二维数组中的查找
- 剑指offer:3-二维数组中的查找
- [剑指Offer]二维数组中的查找
- 【剑指offer】二维数组中的查找
- [剑指Offer]二维数组中的查找
- 剑指Offer:二维数组中的查找
- 【剑指offer】二维数组中的查找
- 剑指offer 1384 二维数组中的查找
- 剑指Offer之二维数组中的查找
- 剑指offer 03:二维数组中的查找
- 长整数排序(指针专题)
- conv2、filter2、imfilter的区别
- MySQL的并集、差集
- 抓取淘宝评论
- 第三方短信验证
- 剑指Offer(一)二维数组中的查找
- 科学的解决Http Token拦截器实现【详细 一篇足矣】
- Jenkins 打包Unity APK
- Windows桌面应用程序(1-1-2-3rd) 使用着色器和着色器资源
- Nagios添加mysql监控
- MTK AT端口打开方法
- 机器学习&深度学习算法及代码实现
- C++ 贪吃蛇基础算法2.0
- 量化生态地图