解题-LeetCode: 1423.可获得最大点数

解题思路
首先拿出了已经积灰了的草稿本子,写下一串测试数组和一个k。
按题目说只能两头取总长度的为k的一些数,求所有组合里最大的,那可不就是中间一段剩余的一定是连续的么(想到这里已经过去30分钟了,边划水看手机刷微博啥的,顺便点了外卖)
那么大思路有了,要找中间连续的一组数(大小为数组长度-k)的一组数,他们的所有可能的和值,求最小值
写下第一行 计算剩余长度大小:int disCount = cardPoints.length-k;
那么接着 就是遍历数组了,for循环套for循环,走起

for(int i = 0;i<=k;i++){
    // 循环1
    for (int j = 0; j < disCount; j++) {
        tempDisNum += cardPoints[i + j];
    }
    disNum = Math.min(disNum,tempDisNum);
}


disNum初始为Integer.MAX_VALUE,用来保存这个中间数据和的最小值;
再对比临时值tempDisNum 和disNum,取小的赋值给disNum;
好了,只要另外计算完整数组的和就好了

for (int n = 0;n


返回 sum - disNum 就好了?

你可能感兴趣的:(算法,java,leetcode,算法,android)