资讯专栏INFORMATION COLUMN

每日一道算法题--二维数组中的查找--python

番茄西红柿 / 547人阅读

摘要:题目描述代码思路思路一按行执行二分查找,只要该行的第一个元素小于目标,就对该行二分查找。思路二从数组的左下角开始查找,如果当前值小于目标,就向右,即如果当前值大于目标,就向上,即。

【题目描述】

【代码思路】 思路一:按行执行二分查找,只要该行的第一个元素小于目标,就对该行二分查找。 思路二:从数组的左下角array[j][i]开始查找,如果当前值小于目标,就向右,即i+1;如果当前值大于目标,就向上,即j-1。

【源代码】

思路1:时间复杂度0(nlogn)
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        if(len(array)==0 or len(array[0])==0):return False
        for i in range(0,len(array)):
            if(array[i][0]>target):
                break
            num=array[i]
            left=0
            right=len(num)-1
            while left<=right:
                mid=int((left+right)/2)
                if(num[mid]>target):
                    right=mid-1
                elif(num[mid]else:
                    return True
        return False
                
思路2:时间复杂度:O(n)

class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        rows = len(array) - 1
        cols= len(array[0]) - 1
        i = rows
        j = 0
        while j<=cols and i>=0:
            if targetelif target>array[i][j]:
                j += 1
            else:
                return True
        return False

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7138.html

相关文章

  • 每日一道算法--二维数组中的查找--python

    摘要:题目描述代码思路思路一按行执行二分查找,只要该行的第一个元素小于目标,就对该行二分查找。思路二从数组的左下角开始查找,如果当前值小于目标,就向右,即如果当前值大于目标,就向上,即。【题目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代码思路】 思路一:按行执行二分查找,只要该行的第一个元素小于目...

    luck 评论0 收藏0
  • 每日一道算法--leetcode 746--使用最小花费爬楼梯--python

    摘要:代码思路最简单的一维动态规划问题,自底向上。上代码看效果,时间复杂度线性级别这里有一个动态规划系列题目整理,供大家参考【题目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/27/16af88f6f38f5da3); !!题干里的示例1需要仔细看一下哦,要到达顶层,即20那一层,可以跳过20这一层达到更高一层,也因此我们给cost数组最后加一个...

    Euphoria 评论0 收藏0
  • 每日一道算法 - LongestWord(easy-1)

    摘要:规则使用语言,让函数获取传递的参数并返回字符串中的最大单词。忽略字符串中标点符号并假设不会为空。测试用例思路通过过滤字符串,并把字符串根据空格符转换成字符串数组通过循环把获取字符串数组中的长度最长的字符串 虽然都是很简单的算法,每个都只需5分钟左右,但写起来总会遇到不同的小问题,希望大家能跟我一起每天进步一点点。更多的小算法练习,可以查看我的文章。 规则 Using the JavaS...

    plokmju88 评论0 收藏0
  • 每日一道算法 - 反转字符串(easy-3)

    摘要:规则使用语言,让函数获取传递的参数,并以相反的顺序返回字符串。测试用例思路方法通过把字符串转换成数组,并使用数组的反转数组,然后使用重新拼接成字符串方法向后循环字符串或字符数组以生成新字符串 虽然都是很简单的算法,每个都只需5分钟左右,但写起来总会遇到不同的小问题,希望大家能跟我一起每天进步一点点。更多的小算法练习,可以查看我的文章。 规则 Using the JavaScript l...

    xfee 评论0 收藏0
  • 每日一道算法

    摘要:遇到的坑刚拿到这道题就直接做了这样的判断,可是万一是这个判断就是错误的了。思路二上述算法遍历了两次链表,还额外申请了一个数组空间,效率不高,不如直接就地反转链表,更改每个节点自身的指针。 2018.10.14 来源:剑指offer 题目:反转链表 输入一个链表,反转链表后,输出新链表的表头。思路一:把所有链表内容都输入到一个数组,再次遍历链表,得到数组反转后的值,最后输出原来的head...

    The question 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<