学习内容

滑动窗口LeeCodeJava

1423.可获得的最大点数

我的代码

  1. class Solution {
  2. public int maxScore(int[] cardPoints, int k) {
  3. int left=k-1;
  4. int right= cardPoints.length-1;
  5. int sum=0;
  6. int temp;
  7. for (int i = 0; i < k; i++) {
  8. sum+=cardPoints[i];
  9. }
  10. int res=sum;
  11. for (int i = 0; i < k; i++) {
  12. temp=cardPoints[right--]-cardPoints[left--];
  13. sum+=temp;
  14. if(sum>res){
  15. res=sum;
  16. }
  17. }
  18. return res;
  19. }
  20. }

思路:

实际上就是一个从两边开始的滑动窗口问题,随意从左指针或者右指针开始,遍历所有的可能找到最大解即可.
速度:100% 内存:30% AC