prev = cur
while cur:
temp = cur.next
cur.next = prev
prev = cur
cur = temp
合并链表
dummy = ListNode(-1)
cur = dummy
while cur1 and cur2:
if cur1.val < cur2.val:
cur.next = cur1
cur1 = cur1.next
else:
cur.next = cur2
cur2 = cur2.next
cur = cur.next
if cur1:
cur.next = cur1
if cur2:
cur.next = cur2
return dummy.next
找最左满足的值
if nums[mid] ≥ target , right= mid -1 ,return left
找最右满足
if nums[mid] ≤ target, left = mid + 1, return right
插入到比当前大的最小值
插入到比当前小的最大值
只允许交易一次,利润最大 = 当前价格 -历史最低价
def maxProfit(self, prices: List[int]) -> int:
if not prices:
return 0
minPrice = float('inf')
n = len(prices)
profit = [0] * n
for i in range(n):
minPrice = min(minPrice, prices[i])
profit[i] = prices[i] - minPrice
return max(profit)
字典+双向链表
get 注意每次 get 如果存在,要更新到最前