Leetcode—740. 删除并获得点数【中等】(unordered_map+set+sort)

2024每日刷题(162)

Leetcode---740. 删除并获得点数

算法思想

实现代码

cpp 复制代码
class Solution {
public:
    int deleteAndEarn(vector<int>& nums) {
        unordered_map<int, int> freq;
        set<int> st;
        sort(nums.begin(), nums.end());
        int n = nums.size();
        for(int i = 0; i < n; i++) {
            freq[nums[i]]++;
            st.insert(nums[i]);
        }

        // 2 3 3 5 6 6
        // 2  3  5  6
        // 2  6  11 18
        int prev1 = 0, prev2 = 0, dp = 0;
        int i = 0;
        int prev = 0;
        for(auto num: st) {
            int curEarn = num * freq[num];
            if(i > 0 && num == prev + 1) {
                dp = max(prev1 + curEarn, prev2);
                prev1 = prev2;
                prev2 = dp;
            } else {
                dp =  prev2 + curEarn;
                prev1 = prev2;
                prev2 = dp;
            }
            prev = num;
            i++;
        }
        return dp;
    }
};

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
想进个大厂16 小时前
代码随想录day32 动态规划01
算法·动态规划
j4455661116 小时前
C++中的职责链模式高级应用
开发语言·c++·算法
uesowys17 小时前
Apache Spark算法开发指导-Decision tree classifier
算法·决策树·spark
池央17 小时前
贪心算法-最大数
算法·贪心算法
iAkuya17 小时前
(leetcode)力扣100 57电话号码的字母组合(回溯)
算法·leetcode·深度优先
WarmSword17 小时前
mac上用cursor/vscode调试root权限进程
c++·ide·vscode·macos·mac
m0_7369191017 小时前
模板元编程性能分析
开发语言·c++·算法
pen-ai17 小时前
【YOLO系列】 YOLOv1 目标检测算法原理详解
算法·yolo·目标检测
wbs_scy17 小时前
C++11:类新功能、lambda与包装器实战
开发语言·c++
永远睡不够的入17 小时前
类和对象(中)
c++