Maximum Points You Can Obtain from Cards LeetCode solution in Java
1class Solution {2public int maxScore(int[] cardPoints, int k) {3int n = cardPoints.length;4int[] totalSum = new int[n];5int sum = 0;6for (int i = 0; i < n; i++) {7sum += cardPoints[i];8totalSum[i] = sum;9}10if (n == k) {11return sum;12}13int score = 0;14for (int i = 0; i <= k; i++) {15int j = i + n - k - 1;16int subsum = 0;17if (i == 0) {18subsum = totalSum[j];19} else {20subsum = totalSum[j] - totalSum[i - 1];21}2223score = Math.max(score, sum - subsum);24}25return score;26}27}