python每日一题

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false

最简单的方法就是一个个找 我先写个最简单的这个

复制代码
class Solution(object):
    def searchMatrix(self, matrix, target):#matrix是一个矩阵 target是要寻找的那个值
        for i in range(len(matrix)):
            for j in range(len(matrix[0])):
                if matrix[i][j]==target:
                    return True
        return False
solution=Solution()
result=solution.searchMatrix([[1,3,5,7],[10,11,16,20],[23,30,34,60]],13)
print(result)

就这就已经通过了 运行速度还打败百分之百 我觉得可能是因为python的缘故?这种for循环其实不好 试试其他方法 我觉得是需要利用这个每行递增 而且下一行相对于上一行的最末尾递增的

那么我是不是如果这个数字比这一行的最后一个大 那么就会在下一行

复制代码
class Solution(object):
    def searchMatrix(self, matrix, target):#matrix是一个矩阵 target是要寻找的那个值
        for i in range(len(matrix)):
            if matrix[i][len(matrix[0])-1]==target:
                return True
            if matrix[i][len(matrix[0])-1]>target:
                if matrix[i][0]>target:
                    return False
                for j  in range(len(matrix[0])):
                    if matrix[i][j]==target:
                        return True
                return False
        return False

solution=Solution()
result=solution.searchMatrix([[1,3,5,7],[13,11,16,20],[23,30,34,60]],13)
print(result)

思路就是这样的 找一行的末尾是比这个数大的 如果达到这个要求 那么找这一行最开始的 要么就在这一行 要么就没有

然后其实还是有优化思路的 就比如在确定了是这一行之后 这一行是有序的 所以使用二分查找会更快 我就不继续写了 感觉这个题目蛮简单的 真的好简单啊 也可能是因为Python的缘故?

相关推荐
zandy101135 分钟前
LLM与数据工程的融合:衡石Data Agent的语义层与Agent框架设计
大数据·人工智能·算法·ai·智能体
max5006001 小时前
本地部署开源数据生成器项目实战指南
开发语言·人工智能·python·深度学习·算法·开源
地平线开发者1 小时前
征程 6E/M|多 camera 场景示例
算法·自动驾驶
源代码•宸2 小时前
Leetcode—721. 账户合并【中等】
c++·经验分享·算法·leetcode·并查集
緈福的街口2 小时前
【leetcode】77.组合
算法·leetcode·职场和发展
NAGNIP2 小时前
深入 vLLM:高性能大模型推理框架解析
算法
JuneXcy2 小时前
字符串(2)
算法
快去睡觉~2 小时前
力扣152:乘积最大子数组
算法·leetcode·职场和发展
程序员Xu2 小时前
【LeetCode热题100道笔记】二叉树的中序遍历
笔记·算法·leetcode
地平线开发者2 小时前
理想汽车智驾方案介绍 4 | World model + 强化学习重建自动驾驶交互环境
算法·自动驾驶