(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
}
相关推荐
半旧夜夏31 分钟前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
jiayong2340 分钟前
AI架构师面试题库 - 完整汇总文档
人工智能·面试·职场和发展
云烟成雨TD1 小时前
Spring AI 1.x 系列【33】RAG Advisor 组件与四大分层架构
java·人工智能·spring
郭涤生2 小时前
C++ 高性能编程最佳实践清单
开发语言·c++
用户987409238872 小时前
llamafactory 0.6.3 没有 llamafactory-cli
算法
计算机安禾2 小时前
【算法分析与设计】第26篇:参数化算法与固定参数可解性理论
大数据·人工智能·算法·机器学习·剪枝
江南十四行2 小时前
并发编程(七)
java
.千余2 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
郭涤生2 小时前
C++ 高性能状态机
开发语言·c++
AI科技星2 小时前
基于**v=c(空间光速螺旋运动)唯一第一性原理**重新完整求导证明
人工智能·线性代数·算法·机器学习·架构·概率论·学习方法