deffindContentChildren(self, g, s):"""
:type g: List[int]
:type s: List[int]
:rtype: int
"""
g.sort()
s.sort()
i,j,num =0,0,0while i<len(g)and j<len(s):if g[i]<=s[j]:
num +=1
i+=1
j +=1return num
135. 糖果
defcandy(s):
init =[1]*len(s)
l =len(s)for i inrange(l-1):if s[i+1]> s[i]:
init[i+1]+=1for j inrange(1, l):if(s[l-j]< s[l-j-1])and(init[l-j]>= init[l-j-1]):
init[l-j-1]= init[l-j]+1return init
435. 无重叠区间
deferaseOverlapIntervals(intervals):
intervals_sort =sorted(intervals, key=lambda x: x[-1])
length =len(intervals_sort)
max_num = intervals_sort[0][-1]
k =1for item inrange(1, length):if intervals_sort[item][0]>= max_num:
k +=1
max_num = intervals_sort[item][-1]return length - k
605. 种花问题
defcanPlaceFlowers(flowerbed, n):
flowerbed =[0]+ flowerbed +[0]
length =len(flowerbed)for i inrange(1, length -1):if flowerbed[i -1]==0and flowerbed[i +1]==0and flowerbed[i]==0:
flowerbed[i]=1
n = n -1return n <=0
452. 用最少数量引爆气球
deffindMinArrowShots(points):
points_sort =sorted(points, key=lambda x: x[1])
min_p =None
k =0for point in points_sort:if min_p ==None:
min_p = point[1]if point[0]> min_p:
min_p = point[1]
k +=1if min_p ==None:return k
return k +1
763. 划分字母区间
defpartitionLabels(s):
dic ={}for i inrange(len(s)):if s[i]in dic:
dic[s[i]].append(i)else:
dic[s[i]]=[i]
all_alpha =sorted([[dic[i][0], dic[i][-1]]for i in dic], key=lambda x: x[0])print(all_alpha)
k =0
min_p = all_alpha[0][0]
max_p = all_alpha[0][1]
res =[]
i =0for item in all_alpha:if item[0]> max_p:
res.append(max_p - min_p +1)
min_p = item[0]
max_p = item[1]else:
max_p =max(item[1], max_p)
res.append(max_p - min_p +1)return res
122. 买卖股票最佳时机II
defmaxProfit(prices):
total =0for i inrange(1,len(prices)):if prices[i]- prices[i -1]>0:
total = total + prices[i]- prices[i -1]return total
406. 根据身高重排
defreconstructQueue(people):
people =sorted(people, key=lambda x:(-x[0], x[1]))
result =[]print(people)for user in people:
result.insert(user[1], user)return result