(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
}
相关推荐
夜猫逐梦20 分钟前
【VC】 error MSB8041: 此项目需要 MFC 库
c++·mfc
沐浴露z20 分钟前
【Java SpringAI智能体开发学习 | 2】SpringAI 实用特性:自定义Advisor,结构化输出,对话记忆持久化,prompt模板,多模态
java·spring·springai
小沈同学呀25 分钟前
创建一个Spring Boot Starter风格的Basic认证SDK
java·spring boot·后端
纪元A梦1 小时前
贪心算法应用:配送路径优化问题详解
算法·贪心算法
码农小伙1 小时前
通俗易懂地讲解JAVA的BIO、NIO、AIO
java·nio
姓刘的哦1 小时前
Qt中的QWebEngineView
数据库·c++·qt
C_player_0011 小时前
——贪心算法——
c++·算法·贪心算法
SundayBear2 小时前
QT零基础入门教程
c++·qt
不要再敲了2 小时前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
潇I洒2 小时前
若依4.8.1打包war后在Tomcat无法运行,404报错的一个解决方法
java·tomcat·ruoyi·若依·404