首页 > 其他分享 >leetcode 2592. 最大化数组的伟大值

leetcode 2592. 最大化数组的伟大值

时间:2024-12-20 17:09:59浏览次数:9  
标签:最大化 2592 nums int mx ++ leetcode size

2592. 最大化数组的伟大值

法一:排序

丑陋的代码

class Solution {
public:
    int maximizeGreatness(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int size = nums.size(),res = 0;
        for(int i = 0,j = 0;i < size && j < size;++i,++j){
            while(j < size){
                if(nums[i] < nums[j]){
                    ++res;break;
                }
                ++j;
            }
        }
        return res;
    }
};

优雅的代码

class Solution {
public:
    int maximizeGreatness(vector<int> &nums) {
        sort(nums.begin(), nums.end());
        int i = 0;
        for (int &x : nums)
            if (nums[i] < x)
                ++i;
        return i;
    }
};

法二:利用两个指针之间的距离

class Solution {
public:
    int maximizeGreatness(vector<int> &nums) {
        int mx = 0;
        unordered_map<int, int> cnt;
        for (int &x : nums)
            mx = max(mx, ++cnt[x]);
        return nums.size() - mx;
    }
};

 

标签:最大化,2592,nums,int,mx,++,leetcode,size
From: https://www.cnblogs.com/uacs2024/p/18619621

相关文章

  • leetcode 8. 字符串转换整数 (atoi)
    8.字符串转换整数(atoi)丑陋的代码classSolution{public:intmyAtoi(strings){inti=0,size=s.size();boolisPositive=true;longres=0;while(s[i]=='')++i;//跳过空格if(s[i]=='-'){......
  • winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击
    winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭protectedoverridevoidWndProc(refMessagem){#region处理点击窗体标题栏放大缩小问题,禁用点击窗体标题栏放大缩小//logger.Info($"{m.Msg}");......
  • LeetCode 热题 第35题 搜索插入位置
    LeetCode热题第35题搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。解题:classSolution{public:intsearchInsert(vector<int>&......
  • LeetCode题集-9 - 回文数
    题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。01、反转字符串法此题我第一反应就是直接把整数转为字符串,然后通过字符串Reverse方法,反转字符串,最后......
  • LeetCode-19. 删除链表的倒数第 N 个结点,关于删除链表会遇见的指针问题
    原题链接前言虽然这道题比较简单,但是我在做这道题时发现了几个需要注意的地方,故写个笔记提一下。正文先将源代码给出来classSolution{public:ListNode*removeNthFromEnd(ListNode*head,intn){ListNode*x=newListNode();x->next=head......
  • 【内向基环树】LeetCode 2360. 图中的最长环
    题解内向基环树的一个基本特征就是总共有\(n\)个节点和\(n\)条边,且每个节点的出度至多为\(1\),因此本题符合内向基环树的特征。先使用拓扑排序,标记全部的简单环外的节点,剩余的节点就必定是环上的节点。参考代码classSolution{public:intlongestCycle(vector<int>......
  • 1264. 页面推荐 - 力扣(LeetCode)
    1264.页面推荐-力扣(LeetCode)目标输入输入:朋友关系列表 user1_iduser2_id12131423242561输入:喜欢列表user_idpage_id188223324456511633277377688输出输出:推荐页面列表recommended_page2324563377分析编写解决方案,向user_id=1的用户,推荐其朋友们喜欢的页......
  • 608. 树节点 - 力扣(LeetCode)
    608.树节点-力扣(LeetCode)目标输入输入:Treetable:idp_id121314252输出输出:idtype1Root2Inner3Leaf4Leaf5Leaf分析树中的每个节点可以是以下三种类型之一:"Leaf":节点是叶子节点。"Root":节点是树的根节点。"lnner":节点既不是叶子节点也不是根节点。编写一个解决......
  • 534. 游戏玩法分析 III - 力扣(LeetCode)
    534.游戏玩法分析III-力扣(LeetCode)目标输入输入:Activitytable:player_iddevice_idevent_dategames_played122016/3/15122016/5/26132017/6/251312016/3/20342018/7/35输出输出:player_idevent_dategames_played_so_far12016/3/1512016/5/21112017/6/251232016/3/......
  • LeetCode746使用最小花费爬楼梯(动态规划)
    原理问题分析与状态定义题目给定一个表示每阶楼梯花费的数组 cost,每次可以选择爬1阶或2阶楼梯,目标是求出到达楼梯顶部的最小花费。定义状态 dp[i] 表示到达第 i 阶楼梯所花费的最小成本。由于可以从第 i-1 阶跨1步或者从第 i-2 阶跨2步到达第 i 阶,所......