《剑指offer》 二维数组中的查找
本题目是《剑指offer》中的题目 二维数组中的查找
题目:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
step1:首先取数组中右上角的数字
step2:判断如果等于目标值,则查找过程结束
step3:如果该数字大于目标值,剔除这个数字所在的列
step4:如果该数字小于目标值,剔除这个数在所在的行
C++ code
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
bool result = false; //返回结果值,默认为false,后期找到会更改此值
if (!array.empty()){ //审核数组是否为空,不为空进入,若为空,直接返回false
int rows = array.size(); //提取二维数组的行数
int row = ; //定义行迭代变量,从0开始迭代
int col = array[].size()-; //定义列迭代变量,从末尾开始迭代
while (row < rows && col >= ){ //循环结束条件为行或者列超标
if (array[row][col] == target){ //判断相等,更改返回值,并跳出循环
result = true;
break;
}else if (array[row][col] > target){//如果大于目标值则去掉行
col -= ;
}else{ //如果小于目标值则去掉列
row += ;
}
}
}
return result;
}
};
Python Code
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
result = False #该值后期当找到其值时候会被改变
if array: #审核边界条件
rows = len(array) #全部的行
row = 0 #迭代的行数
col = len(array[0])-1 #迭代的列数,遍历时候要减一开始
while row < rows and col >= 0: #条件是行列符合规则
if array[row][col] == target: #当找到该值时候
result = True #修改返回值,并且推出循环
break
elif array[row][col] > target:#当大于该值,去掉这一列
col -= 1
else: #当小于该值时候,去掉这一行
row += 1
return result
总结:
二维数组的遍历,自习查看该题目的特点,是有顺序的,所以要查找规律。仔细查看循环的遍历条件。
《剑指offer》 二维数组中的查找的更多相关文章
- (java)剑指offer二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从 上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. pu ...
- 剑指Offer 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路法一: * 矩阵是 ...
- 剑指Offer——二维数组中的查找
题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 分析: 因为二维数组 ...
- 剑指offer—二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 用js刷剑指offer(二维数组中的查找)
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 牛客网-剑指Offer 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 剑指Offer_4_二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 面试题5-[剑指offer] 二维数组中的查找
题目 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 剑指offer--1.二维数组中的查找
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- C#版剑指Offer-001二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
随机推荐
- day 4 - 1 列表
1.列表的增删改查 1) append insert extend li = ["ysg",[1,2,3,4,5],"peipei","梦幻" ...
- python - 代码练习 - 备份目录/文件(windos环境)
备份目录/文件 import zipfile import os,datetime class beifen(object): def __init__(self,files,new_files,co ...
- HashMap、Hashtable、ConcurrentHashMap面试总结
原文链接:https://www.cnblogs.com/hexinwei1/p/10000779.html 小总结 HashMap.Hashtable.ConcurrentHashMap HashM ...
- exsi5.5以上版本支持虚拟机的二次虚拟化
从存储里找到虚拟机的位置 下载并修改虚拟机的.vmx配置文件(记得做好备份) 打开<虚拟机名>.vmx文件,在末尾追加如下字段,保存退出. nce.enable = TRUE hyperv ...
- PC端的鼠标拖拽滑动
1.滑块拖拽 html: <div id="div1"> js: <script> var oDiv=null; ; ; window.onload=fun ...
- 《Windows核心编程》读书笔记 上
[C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...
- python类的内建方法
研究email源码学到的 class test(): """Class for generating text/* type MIME documents."& ...
- aix装python
网址是:http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html 在AIX下安装python Python是个 ...
- Linux目录结构以及文件操作
Linux目录结构 UNIX 是以目录为主的,Linux 也继承了这一优良特性. Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架.虽然本质上无论是目录 ...
- struts2项目搭建
把strutslib中的所有jar包添加到类路径 在src下创建struts.xml文件 <?xml version="1.0" encoding="UTF-8&q ...