题目 代码 public static int maxSatisfied(int[] customers, int[] grumpy, int minutes) { //找出customers里的最大minutes个能被平息的顾客和 int max = 0; //记住开头的数字 int start=0; for(int i=0;i<minutes;i++) { //先将第一组作为最大值 if(grumpy[i]==1) max+=customers[i]; } //然后开始滑动 for(int j=1;j+minutes-1<customers.length;j++) { int temp = 0; for(int k=j;k<j+minutes;k++) { if(grumpy[k]==1) temp+=customers[k]; } if(temp>max) { max=temp; start=j; } } //开始计算顾客人数 int ans=0; for(int i=0;i<customers.length;i++) { if(i>=start && i<start+minutes) ans+=customers[i]; else if(grumpy[i]==0) ans+=customers[i]; } return ans; }