算法总结:剑指offer(数字查找)
Posted clarino
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法总结:剑指offer(数字查找)相关的知识,希望对你有一定的参考价值。
一、二维数组数字查找
题目:二维数组中,每行从左到右递增,每列从上到下递增;完成一个函数:输入该数组和待查找数字,判断是否可查找到该数字;
// 从数组右上角启动查询,根据查询结果判断行和列下标的变化,逐渐缩小查找范围
private static boolean findValueInMatrix(Integer[][] number, Integer key) { int rowLength = number.length; int columnLength = number[0].length; boolean bFindFlag = false; if (rowLength > 0 && columnLength > 0) { int rowIndex = 0; int columnIndex = columnLength - 1; while (rowIndex < rowLength && columnIndex >= 0) { if (number[rowIndex][columnIndex] == key) { bFindFlag = true; break; } if (number[rowIndex][columnIndex] > key) { columnIndex--; // key值小于当前列,则下一步在左边列查询 } else { rowIndex++; // key值大于当前行,则下一步在下一行查询 } } } return bFindFlag; }
以上是关于算法总结:剑指offer(数字查找)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段
乱序版 ● 剑指offer每日算法题打卡题解—— 查找算法 (题号3,4,11,53)