(LeetCode 每日一题) 2966. 划分数组并满足最大差限制 (贪心、排序)

题目:2966. 划分数组并满足最大差限制


思路:升序排序,然后每三个数进行比较,时间复杂度0(nlogn)。

C++版本:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> divideArray(vector<int>& nums, int k) {
        sort(nums.begin(),nums.end());
        vector<vector<int>> v;
        for(int i=2;i<nums.size();i+=3){
            if(nums[i]-nums[i-2]>k){
                return {};
            }
            v.push_back({nums[i-2],nums[i-1],nums[i]});
        }
        return v;
    }
};

JAVA版本:

java 复制代码
class Solution {
    public int[][] divideArray(int[] nums, int k) {
        Arrays.sort(nums);
        int[][] v=new int[nums.length/3][];
        for(int i=2;i<nums.length;i+=3){
            if(nums[i]-nums[i-2]>k){
                return new int[][]{};
            }
            v[i/3]=new int[]{nums[i-2],nums[i-1],nums[i]};
        }
        return v;
    }
}

Go版本:

go 复制代码
func divideArray(nums []int, k int) [][]int {
    slices.Sort(nums)
    v:=make([][]int,len(nums)/3)
    for i:=2;i<len(nums);i+=3 {
        if nums[i]-nums[i-2]>k {
            return nil
        }
        v[i/3]=[]int{nums[i-2],nums[i-1],nums[i]}
    }
    return v
}
相关推荐
霸道流氓气质1 分钟前
SpringBoot中基于 AES-GCM + KMS 密钥管理的数据加解密 Starter 实践
java·数据库·spring boot
Gofarlic_OMS13 分钟前
NX浮动许可调度黑名单机制,对比两款谁更合理
java·大数据·运维·开源·制造
一只小灿灿21 分钟前
C++ 修饰符全面详解
开发语言·c++
圣保罗的大教堂24 分钟前
leetcode 3514. 不同 XOR 三元组的数目 II 中等
leetcode
乐观的Terry35 分钟前
8、发布系统-完整流水线的核心
java·spring boot·spring·spring cloud
Alexalbb36 分钟前
从角色过滤到可审计授权:单体系统数据权限设计复盘与演进
java
code_pgf38 分钟前
C/C++ 中 `typedef` 关键字详解
c语言·c++
万亿少女的梦1681 小时前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
会周易的程序员1 小时前
js-shm: 高性能 Node.js 共享内存模块
开发语言·javascript·c++·node.js·共享内存·shm
闲猫1 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端