LeetCode.435 无重叠区间
res = 0
intervals.sort(key = lambda x: x[0])
interval = [0, intervals[0][0]-1]
for i in intervals:
if i[0] < interval[1]:
res += 1
interval = [max(i[0], interval[0]), min(interval[1], i[1])]
else:
interval = i
return res
LeetCode.763 划分字母区间
3层while循环差点把我cpu烧了
dic = {}
for i in s:
dic[i] = dic.get(i, 0)+1
res = [0]
start, end = 0, 1
while start < len(s):
dic[s[start]] -= 1
while start < end:
while dic[s[start]]:
dic[s[end]] -= 1
end += 1
start += 1
res.append(start)
end += 1
return [res[i]-res[i-1] for i in range(1, len(res))]
LeetCode.56 合并区间
intervals.sort(key = lambda x: x[0])
res = []
for i in intervals:
if res and i[0] <= res[-1][1]:
res[-1][1] = max(res[-1][1], i[1])
else:
res.append(i)
return res