●理论基础
455.分发饼干
#伪代码
#先排序
sort(g.begin,g.end);
sort(s.begin.s.end);
int result=0
int index=s.size()-1;
for(i=g.size()-1;i>=0;i--){
if(index>=0&&s[index0>=g[i]])
result++;
index--;
}
return result;
class Solution:
def findContentChildren(self, g: List[int], s: List[int]) -> int:
#贪心算法
g.sort()
s.sort()
result=0
j=len(s)
#大饼干分大孩子
for i in range(len(g)-1,-1,-1):
if(j-1>=0 and s[j-1]>=g[i]):
result+=1
j-=1
return result
376. 摆动序列
#伪代码
num.size=1 return 1;
prediff=0
curdiff=0
result=1
for(i=0;i=0&&curdiff<0)||(prediff<=0&&curdiff>0)
result++;
prediff=curdiff
}
class Solution:
def wiggleMaxLength(self, nums: List[int]) -> int:
prediff=0
result=1
for i in range(len(nums)-1):
curdiff=nums[i+1]-nums[i]
if((prediff>=0 and curdiff<0) or (prediff<=0 and curdiff>0)):
result+=1
prediff=curdiff
return result
53. 最大子序和
#伪代码
int result=INT_MIN;
int count=0;
for(i=0;iresult) result=count;
if(count<0) count=0;
}
return result
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
#贪心算法
result=-inf
count=0
for i in range(len(nums)):
count+=nums[i]
if(count>result):
result=count
if(count<0):
count=0
return result