1. 跳躍遊戲
題目連結:https://leetcode.cn/problems/jump-game/
給定一個非負整數陣列 nums ,你最初位於陣列的 第一個下標 。陣列中的每個元素代表你在該位置可以跳躍的最大長度。
判斷你是否能夠到達最後一個下標,如果可以,返回 true ;否則,返回 false 。
class Solution:
def canJump(self, nums: List[int]) -> bool:
n = len(nums)
farthest = 0
for i in range(n):
if i > farthest:
return False
farthest = max(farthest, i + nums[i])
return True
2. 合併區間
題目連結:https://leetcode.cn/problems/merge-intervals/
以陣列 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] = [starti, endi] 。請合併所有重疊的區間,並返回 一個不重疊的區間陣列,該陣列需恰好覆蓋輸入中的所有區間 。
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
if not intervals:
return []
intervals.sort(key=lambda x: x[0])
result = [intervals[0]]
for interval in intervals[1:]:
if interval[0] <= result[-1][1]:
result[-1][1] = max(result[-1][1], interval[1])
else:
result.append(interval)
return result