遍历
class Solution:
def validMountainArray(self, arr: List[int]) -> bool:
# 遍历
n = len(arr)
if n < 3 or arr[0] >= arr[1]:
return False
flag = False
pre = arr[0]
for i in range(1,n):
now = arr[i] #存储避免多次调用
if now == pre:
return False
if now < pre: #出现峰顶
flag = True
if flag and now > pre: #出现峰顶后又有上升趋势
return False
pre = now
return flag
模拟
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
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 = 0
for j in range(i,n):
s += nums[j]
ans.append(s)
ans.sort()
return sum(ans[left-1:right]) % (10**9+7)
2.二分查找 + 前缀和
(在学习中)
(未完待续)
感谢你看到这里!一起加油吧!