二维有序数组的查找 python解决
2017-02-16 00:23
225 查看
一点一点的进步
题目是
在:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组
和一个整数,判断数组中是否含有该整数。
解题的思路:菜菜的我想的自然是暴力遍历,当然那是不行的。看下面大神的思路,恍然大悟。
首先选取数组右上角的数字,如果该数字等于要查找的数字,则查找结束;
如果要查找的数字大于该数字,剔除这个数字所在的行。
如果要查找的数字小于该数字,剔除这个数字所在的列,
这样每一步都可以剔除一行或一列,查找的速度比较快。
当然也可以选择左下角的数字,思路同上。
这样子查找的话,每次能比较一行或者一列,效率就快了。
最重要的,自己用python 敲了一下,正好练习一下python。
题目是
在:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题的思路:菜菜的我想的自然是暴力遍历,当然那是不行的。看下面大神的思路,恍然大悟。
首先选取数组右上角的数字,如果该数字等于要查找的数字,则查找结束;
如果要查找的数字大于该数字,剔除这个数字所在的行。
如果要查找的数字小于该数字,剔除这个数字所在的列,
这样每一步都可以剔除一行或一列,查找的速度比较快。
当然也可以选择左下角的数字,思路同上。
这样子查找的话,每次能比较一行或者一列,效率就快了。
最重要的,自己用python 敲了一下,正好练习一下python。
# array 二维列表 def Find(target, array): #选择右上角的数字 row = 0 maxrow = len(array) - 1 col = len(array[0]) - 1 while col>=0 and row<= maxrow: if array[row][col] == target: return True elif target > array[row][col]: row+=1 else : target < array[row][col] col-=1 return False
相关文章推荐
- Python实现二维有序数组查找的方法
- 二维“有序”数组查找问题的解决
- Python实现二维有序数组查找的方法
- 二维有序数组查找某值
- 在一个二维有序数组中,查找指定的数据是否存在
- leetcode——Search a 2D Matrix 二维有序数组查找(AC)
- 剑指offer 二维有序数组查找
- python实现:使用二分查找,查找有序数组中,一个数字最后出现的下标
- 二维有序数组中查找
- 二维有序数组查找一个数
- (java)二维有序数组中查找元素
- 二维有序数组查找
- 二维有序数组查找数字
- 二维有序数组查找给定值
- 算法分析之二维有序数组查找
- 在有序但含有None的数组中查找字符串 Python 版
- 二维有序数组中的查找 剑指offer 01
- leetcode——Search a 2D Matrix 二维有序数组查找(AC)
- 二维有序数组查找
- 二维有序数组查找