博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题3:二维数组中的查找
阅读量:5239 次
发布时间:2019-06-14

本文共 1317 字,大约阅读时间需要 4 分钟。

思路:

先看剑指offer中的思路

 1、从右上角开始查找
 2、如果值大于num,列数减1;小于num,则行数加1。

如下:查找数组中是否有数字7,有则输出true,否则false

package offer_3;/** *  思路: *  1、从右上角开始查找 *  2、如果值大于num,列数减1;小于num,则行数加1。 * @author Administrator * */public class FindInPartiallySortedMatirx {    public static void main(String[] args) {        // TODO Auto-generated method stub//        int[][] matrix = {
{1,2,8,9}, {2,4,9,12}, {4,7,10,13}, {6,8,11,15} }; int[][] matrix = {}; System.out.println(changeValue(matrix, 7)); } private static boolean changeValue(int[][] matrix, int num) { boolean result = false; int columns, rows; //判断是否有元素 if(matrix.length > 0 ){ columns = matrix[0].length;//二维数组的列数 rows = matrix.length;  //二维数组的行数 } else { columns = 0; rows = 0; } if(columns >=0 && rows >=0 && matrix != null){ //保证数组有效 int c = columns-1, r = 0; while (c >= 0 && r < rows) { //依次取出元素 if(matrix[c][r] == num){ //相等时 result = true; break; } else if(matrix[c][r] > num) {c = c-1;} //如果值大于num,列数减1 else {r=r+1;} //小于num,则行数加1。 } } return result; }}

 

转载于:https://www.cnblogs.com/Donnnnnn/p/5720362.html

你可能感兴趣的文章
树状数组及其他特别简单的扩展
查看>>
Linux vi/vim
查看>>
zookeeper适用场景:分布式锁实现
查看>>
110104_LC-Display(液晶显示屏)
查看>>
javascript全局变量
查看>>
全连接神经网络(DNN)
查看>>
httpd_Vhosts文件的配置
查看>>
php学习笔记
查看>>
28 hashlib 模块 logging 模块 和 configparser模块 functools模块的偏函数partial
查看>>
普通求素数和线性筛素数
查看>>
React Router 4.0 基本使用
查看>>
作业完成2
查看>>
PHP截取中英文混合字符
查看>>
HTA - OnKeyDown
查看>>
【洛谷P1816 忠诚】线段树
查看>>
CDN 学习笔记
查看>>
电子眼抓拍大解密
查看>>
Linux系统下 /etc/shadow 档案结构
查看>>
多线程---线程间的通信
查看>>
poj 1331 Multiply
查看>>