(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
}
相关推荐
进击的圆儿8 分钟前
【学习笔记02】C++面向对象编程核心技术详解
c++·笔记·学习
卷Java21 分钟前
预约记录关联查询接口说明
java·开发语言·spring boot·python·微信小程序
寻星探路26 分钟前
Java EE初阶启程记12---synchronized 原理
java·java-ee
qq_5746562526 分钟前
java代码随想录day50|图论理论基础
java·算法·leetcode·图论
蒋星熠28 分钟前
Maven项目管理与构建自动化完全指南
java·前端·python·自动化·maven
sheji341629 分钟前
【开题答辩全过程】以 ssm框架的智能校园服务系统为例,包含答辩的问题和答案
java·eclipse
hzulwy1 小时前
微服务注册与监听
微服务·云原生·架构·go
ajassi20001 小时前
开源 C++ QT QML 开发(七)自定义控件--仪表盘
c++·qt·开源
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用
java·flink·kafka·工业物联网·设备故障预测·智能运维·实时流处理
fat house cat_1 小时前
为什么RocketMQ选择mmap+write?RocketMQ零拷贝技术深度解析
java·rocketmq·零拷贝