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;
    }
};

运行结果

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

相关推荐
青花瓷29 分钟前
C++__XCode工程中Debug版本库向Release版本库的切换
c++·xcode
观音山保我别报错31 分钟前
C语言扫雷小游戏
c语言·开发语言·算法
幺零九零零2 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
TangKenny2 小时前
计算网络信号
java·算法·华为
景鹤2 小时前
【算法】递归+深搜:814.二叉树剪枝
算法
iiFrankie2 小时前
SCNU习题 总结与复习
算法
捕鲸叉2 小时前
MVC(Model-View-Controller)模式概述
开发语言·c++·设计模式
Dola_Pan3 小时前
C++算法和竞赛:哈希算法、动态规划DP算法、贪心算法、博弈算法
c++·算法·哈希算法
yanlou2333 小时前
KMP算法,next数组详解(c++)
开发语言·c++·kmp算法
小林熬夜学编程3 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法