(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
}
相关推荐
Fre丸子_4 小时前
自定义文件夹选取功能
c++
摇滚侠5 小时前
Java 零基础全套教程,反射机制,笔记 187-188
java·开发语言·笔记
超梦dasgg5 小时前
Java 生产环境第三方对接安全保障方案
java·开发语言·安全
秦明月135 小时前
电芯装配测试线安全回路设计实战
经验分享·其他·职场和发展·创业创新·学习方法
日月云棠5 小时前
9 Double 与 Float —— IEEE 754 浮点数在 Java 中的实现
java·后端
Refrain_zc5 小时前
Android 二维码登录轮询机制:从扫码到登录的完整客户端实现
java
z落落5 小时前
C#参数区别
java·算法·c#
日月云棠5 小时前
5 StringBuffer —— 线程安全的可变字符串
java·后端
happymaker06265 小时前
SpringBoot学习日记——DAY06(整合MyBatisPlus的其他功能)
java·spring boot·学习
思麟呀6 小时前
C++工业级日志项目(六)异步日志器
linux·c++·windows