(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
}
相关推荐
争不过朝夕,又念着往昔14 分钟前
即时通讯项目---网关服务
linux·c++·vscode
蓝风破云24 分钟前
C++实现常见的排序算法
数据结构·c++·算法·排序算法·visual studio
熊文豪36 分钟前
保姆级Maven安装与配置教程(Windows版)
java·windows·maven·maven安装教程·maven配置教程·maven安装与配置教程
怀旧,1 小时前
【C++】 9. vector
java·c++·算法
渣哥1 小时前
震惊!Java注解背后的实现原理,竟然如此简单又高深!
java
hqxstudying2 小时前
JAVA限流方法
java·开发语言·安全·限流
shylyly_2 小时前
Linux->多线程2
java·linux·多线程·线程安全·线程同步·线程互斥·可重入
小蒜学长3 小时前
基于实例教学的软件工程专业教学系统
java·spring boot·后端·软件工程
Code_Artist3 小时前
[Java并发编程]3.同步锁的原理
java·后端·面试