栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

leetcode2294. 划分数组使最大差为 K(周赛,中等)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode2294. 划分数组使最大差为 K(周赛,中等)





思路:划分子序列+只考虑每个子序列中的值,不考虑子序列内元素的顺序->跟顺序无关,直接排序->贪心

class Solution {
public:
    int partitionArray(vector& nums, int k) {
        
        int ans = 0, n = nums.size(), index = 0;
        sort(nums.begin(), nums.end());
        while (index < n) {
            index = upper_bound(nums.begin() + index, nums.end(), nums[index] + k) - nums.begin();
            ans++;
        }
        return ans; 
    }
};

代码优化:不需要定义pre来记录这一轮upper_bound()开始的元素值,因为nums[index]就是pre,因此定义一个变量index就可以。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号