(LeetCode 每日一题) 2294. 划分数组使最大差为 K (贪心、数组)

题目:2294. 划分数组使最大差为 K


思路:贪心+数组,升序排序。维护当前数组的最小值即可,时间复杂度0(nlogn)。

C++版本:

cpp 复制代码
class Solution {
public:
    int partitionArray(vector<int>& nums, int k) {
        int ans=0;
        sort(nums.begin(),nums.end());
        int right=INT_MIN/2;
        for(auto x:nums){
            if(x-right>k){
                ans++;
                right=x;
            }
        }
        return ans;
    }
};

JAVA版本:

java 复制代码
class Solution {
    public int partitionArray(int[] nums, int k) {
        int ans=0;
        Arrays.sort(nums);
        int right=Integer.MIN_VALUE/2;
        for(var x:nums){
            if(x-right>k){
                ans++;
                right=x;
            }
        }
        return ans;
    }
}

Go版本:

go 复制代码
func partitionArray(nums []int, k int) int {
    slices.Sort(nums)
    ans:=0
    left:=math.MinInt/2
    for _,x:=range nums {
        if x-left>k {
            ans++
            left=x
        }
    }
    return ans
}
相关推荐
程序员爱钓鱼31 分钟前
Go语言实战案例-判断回文字符串-是不是正着念反着念都一样?
后端·google·go
黑色火種2 小时前
CCF CSP第一轮认证一本通
c++·csp·ccf·信奥赛·noi
不二青衣2 小时前
牛客网50题
数据结构·c++·算法
fanruitian5 小时前
Springboot aop面向切面编程
java·spring boot·spring
胡西风_foxww5 小时前
Java的extends通配符
java·开发语言·通配符·extends
中国lanwp6 小时前
Spring Boot 中使用 Lombok 进行依赖注入的示例
java·spring boot·后端
凌辰揽月6 小时前
AJAX 学习
java·前端·javascript·学习·ajax·okhttp
永日456707 小时前
学习日记-spring-day45-7.10
java·学习·spring
武当豆豆7 小时前
C++编程学习阶段性总结
开发语言·c++
小屁孩大帅-杨一凡8 小时前
如何解决ThreadLocal内存泄漏问题?
java·开发语言·jvm·算法