(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
}
相关推荐
jjjava2.01 分钟前
深入解析Set与Map的奥秘
java·开发语言
白宇横流学长6 分钟前
基于Java的火车票订票系统的设计与开发
java·开发语言
黎雁·泠崖6 分钟前
Java核心基础API学习总结:从Object到包装类的核心知识体系
java·开发语言·学习
Yvonne爱编码9 分钟前
JAVA数据结构 DAY1-集合和时空复杂度
java·数据结构·python
iAkuya11 分钟前
(leetcode)力扣100 57电话号码的字母组合(回溯)
算法·leetcode·深度优先
WarmSword13 分钟前
mac上用cursor/vscode调试root权限进程
c++·ide·vscode·macos·mac
m0_7369191024 分钟前
模板元编程性能分析
开发语言·c++·算法
win x25 分钟前
JavaSE(基础)高频面试点及 知识点
java·面试·职场和发展
Terio_my26 分钟前
简要 Java 面试题学习
java·开发语言·学习
wbs_scy36 分钟前
C++11:类新功能、lambda与包装器实战
开发语言·c++