本文主要是介绍2024.3.29力扣刷题记录(未完),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、941. 有效的山脉数组
遍历
class Solution:def validMountainArray(self, arr: List[int]) -> bool:# 遍历n = len(arr)if n < 3 or arr[0] >= arr[1]:return Falseflag = Falsepre = arr[0] for i in range(1,n):now = arr[i] #存储避免多次调用if now == pre:return Falseif now < pre: #出现峰顶flag = Trueif flag and now > pre: #出现峰顶后又有上升趋势return Falsepre = nowreturn flag
二、1389. 按既定顺序创建目标数组
模拟
class Solution:def createTargetArray(self, nums: List[int], index: List[int]) -> List[int]:# 模拟 时复O(n^2)ans = []for x,idx in zip(nums,index):ans.insert(idx,x)return ans
三、1508. 子数组和排序后的区间和
1.模拟
class Solution:def rangeSum(self, nums: List[int], n: int, left: int, right: int) -> int:# 模拟# 时复O(n^2*logn),时复O(n^2)ans = []for i in range(n):s = 0for j in range(i,n):s += nums[j]ans.append(s)ans.sort()return sum(ans[left-1:right]) % (10**9+7)
2.二分查找 + 前缀和
(在学习中)
(未完待续)
感谢你看到这里!一起加油吧!
这篇关于2024.3.29力扣刷题记录(未完)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!