class Solution {
public int findContentChildren(int[] g, int[] s) {
if(g==null||s==null) return 0;
Arrays.sort(g);
Arrays.sort(s);
int i=0,j=0;
while(i<g.length&&j<s.length){
if(g[i]<=s[j]){
i++;
}
j++;
}
return i;
}
}
class Solution {
public int eraseOverlapIntervals(int[][] intervals) {
if(intervals==null||intervals.length<=1) return 0;
Arrays.sort(intervals,(x,y)->(x[1]-y[1]));//按照end升序排序
int end=intervals[0][1],cnt=0;
for(int i=1;i<intervals.length;i++){
if(intervals[i][0]<end){
cnt++;
}
else{
end=intervals[i][1];
}
}
return cnt;
}
}
class Solution {
public int findMinArrowShots(int[][] points) {
if(points.length<=1) return points.length;
Arrays.sort(points,(x,y)->(x[1]-y[1]));//end排序
int end=points[0][1];
int cnt=1;
for(int i=1;i<points.length;i++){
if(points[i][0]>end){
cnt++;
end=points[i][1];
}
}
return cnt;
}
}
class Solution {
public int maxProfit(int[] prices) {
int pro=0,ma=0;
for(int i=0;i<=prices.length-2;i++){
for(int j=i;j<=prices.length-1;j++){
pro=prices[j]-prices[i];
if(ma<pro) ma=pro;
}
}
return ma;
}
}
class Solution {
public int maxProfit(int[] prices) {
if(prices.length<=1) return 0;
int pro=0;
for(int i=1;i<prices.length;i++){
if(prices[i]-prices[i-1]>0){
pro+=prices[i]-prices[i-1];
}
}
return pro;
}
}
class Solution {
public boolean canPlaceFlowers(int[] flowerbed, int n) {
int len=flowerbed.length;
int []tmp=new int[len+2];
tmp[0]=0;
tmp[len+1]=0;
int cnt=0;
for(int i=0;i<len;i++){
tmp[i+1]=flowerbed[i];
}
for(int i=1;i<=len;i++){
if(tmp[i-1]==0&&tmp[i]==0&&tmp[i+1]==0){
tmp[i]=1;
cnt++;
}
}
return cnt>=n;
}
}
class Solution {
public boolean isSubsequence(String s, String t) {
int ls=s.length(),lt=t.length(),i=0,j=0;
while(i<lt&&j<ls){
if(s.charAt(j)==t.charAt(i)){
j++;
}
i++;
}
return j>=ls;
}
}
class Solution {
public boolean checkPossibility(int[] nums) {
int cnt=0;
int len=nums.length;
for(int i=1;i<len;i++){
if(nums[i]<nums[i-1]){
cnt++;
if(i-2>=0&&nums[i-2]>nums[i]){
nums[i]=nums[i-1];
}
else{
nums[i-1]=nums[i];
}
}
}
return cnt<=1;
}
}
//https://www.cnki.net/?UID=WEEvREcwSlJHSldTTEYzVTFPV2k1SHNyMFVFZU9KUU1FaUNSanZiVzRKdz0%3d%249A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&autoLogin=0
class Solution {
public int maxSubArray(int[] nums) {
int len=nums.length;
int []dp=new int [len];
dp[0]=nums[0];
int res=nums[0];
for(int i=1;i<len;i++){
dp[i]=Math.max(dp[i-1]+nums[i],nums[i]);
res=Math.max(dp[i],res);
}
return res;
}
}
class Solution {
public List<Integer> partitionLabels(String S) {
ArrayList<Integer>list=new ArrayList<>();
HashMap<Character,Integer>mp=new HashMap<>();
for(int i=0;i<S.length();i++){
mp.put(S.charAt(i),i);
}
int start=0,end=0;
for(int i=0;i<S.length();i++){
end=Math.max(end,mp.get(S.charAt(i)));
if(end==i){
list.add(end-start+1);
start=i+1;
}
}
return list;
}
}