算法第二周作业01
来源:互联网 发布:sqllite接受数据 编辑:程序博客网 时间:2024/06/06 19:16
Description
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
Solutions
对于左上角的元素array[i][j] (其中i=0; j=array[0].length),它下方的数值都比它大(就是说它所在列中是最大的),它左方的数值都比它小(就是说它所在行是最大的)。
首先将目标整数与左上角的元素对比,如果相等,那么它就是答案; 如果目标整数大于左上角的元素,那么目标整数大于它一整行的数值,因此可以排除所在行,即i++; 如果目标整数小于左上角的元素,那么目标整数小于它一整列的数值,因此可以排除所在列,即j--;
重复上述过程,直到i==array.length或者j==-1; 最后由于找不到相等的,返回false
Code
public static boolean Find(int target, int[][] array) {if(array == null || array.length == 0 || array[0].length == 0 || array[0][0] > target){return false;}// 定位左上角元素int i=0;int j=array[0].length - 1;for(; i< array.length && j >= 0;){if(target == array[i][j]){return true;} else if(target < array[i][j]){// 放弃所在列j--;} else if(target > array[i][j]){// 放弃所在行i++;}}return false;}
0 0
- 算法第二周作业01
- 算法 第二周作业
- 算法第二周作业
- 算法第二周作业
- 第二周算法作业
- 第二周的算法作业
- 算法作业(第二周)
- 第二周作业--RSA算法
- 算法概论第二周作业
- 算法第二周作业:名词解释
- 算法第二周作业02
- 算法第二周作业03
- 算法第二周作业04
- 算法第二周作业05
- 算法第二周作业06
- 第二周作业01 -- 素数的算法实现
- 第二周作业——RSA算法
- 《算法概论》第二周作业2.1
- Android之ViewPager+RadioGroup
- 蓝桥杯算法训练——关联矩阵
- 最少知识原则(Least Knowledge Principle)
- 求Maximum Depth of Binary Tree 广度优先遍历算法
- recyclerview中的 TextView 跑马灯遇到的一个问题
- 算法第二周作业01
- MFC—— 控件数据交换:DDX
- 防御导弹 最长递增子序列
- jvm系列(八):jvm知识点总览-高级Java工程师面试必备
- PHP时间和日期函数详解
- 不要指望着爱情能救赎你的未来
- 【腾讯云的1001种玩法】 Laravel 整合微视频上传管理能力,轻松打造视频App后台
- python基础学习 数据类型——拾遗
- Bash的基本功能