力扣每日一题-K个元素的最大和-2023.11.15

    力扣每日一题:K个元素的最大和

题目链接:2656.K个元素的最大和

题目描述

代码思路

题目看完直接笑嘻了,还有这么容易的题。由题可知,第一次要找出最大值m,那由于把m+1放回去,那第二次找的就是m+1,以此类推。最大答案就是首项为m,公差为1的等差数列的前k项和

代码

class Solution {
    public int maximizeSum(int[] nums, int k) {
        Arrays.sort(nums);//利用sort把数组从小到大排好
        int max = nums[nums.length - 1];
        int sum = k * (2 * max + k - 1) / 2; //等差数列和的公式
        return sum;
    }
}

其它解法

class Solution {
    public int maximizeSum(int[] nums, int k) {
        int max = 0;
        for (int num : nums) max = Math.max(max, num);
        return (max * 2 + k - 1) * k / 2;
    }
}

你可能感兴趣的:(Java算法,leetcode,算法,数据结构,java)