文章目录
☀️ 前言 ☀️
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
🙀 作者简介 🙀
大家好,我是国王与乞丐,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!
💗 一、题目描述 💗
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-a-2d-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
示例1:
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
💁 二、题目解析 💁
因为要使时间复杂度低,所以不能用传统的二重循环遍历
思路是以左下角的数字作为坐标轴的中心,如果target比中心的数字大则往
右边移动,如果比中心数字小则往上边移动。
🏃 三、代码 🏃
☁️ 1️⃣. python ☁️❄️
class Solution:
def maxArea(self, nums,target):
rows = len(nums)- 1
columns = 0
while rows >= 0 and columns < len(nums[0]):
num = nums[rows][columns]
if (num == target):
return True;
elif num > target:
rows-=1
else:
columns+=1
return False
🌔 结语 🌔
☀️ 前言 ☀️算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!