每日一题(力扣740):删除并获得点数--dp+思维

embedded/2024/9/20 7:22:41/ 标签: leetcode, 哈希算法, 动态规划

其实跟打家劫舍没啥区别 排序去重之后去考虑当前位置和前两个位置之间的关系即可,具体见代码:

class Solution {
public:int deleteAndEarn(vector<int>& nums) {int n = nums.size();if (n == 1) return nums[0];unordered_map<int, int> hash;for (int i = 0; i < n; i++) {++hash[nums[i]];}sort(nums.begin(), nums.end());int n1 = (unique(nums.begin(), nums.end()) - nums.begin());vector<int> dp(n1 + 1, 0);dp[0] = 0; dp[1] = nums[0] * hash[nums[0]];for (int i = 1; i < n1; i++) {if (nums[i] - nums[i - 1] == 1) {dp[i + 1] = max(dp[i - 1] + nums[i] * hash[nums[i]], dp[i]);}else {dp[i + 1] = dp[i] + nums[i] * hash[nums[i]];}}return dp[n1];}
};


http://www.ppmy.cn/embedded/31509.html

相关文章

React 之 Effect与事件(event)(八)

Effect&#xff08;useEffect Hook&#xff09; 在React中&#xff0c;Effect&#xff08;或者更具体地说&#xff0c;useEffect Hook&#xff09;是一个特殊的函数&#xff0c;它允许你在函数组件中执行副作用操作。这些副作用操作可能包括数据获取、手动更改DOM、订阅或取消订…

深度学习每周学习总结P7(咖啡豆识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 –来自百度网盘超级会员V5的分享 数据链接 提取码&#xff1a;7zt2 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入及处理部分…

说一说Kotlin协程中的同步锁——Mutex

目录 前言MutexwithLock lockEmptyLockedQueue unlockLockCont总结 前言 在多线程并发的情况下会很容易出现同步问题&#xff0c;这时候就需要使用各种锁来避免这些问题&#xff0c;在java开发中&#xff0c;最常用的就是使用synchronized。kotlin的协程也会遇到这样的问题&am…

PPT基础

5种ppt仅可读形式 Ⅰ 开始选项卡 1.【幻灯片】组中&#xff1a;新建幻灯片&#xff0c;从大纲中导入幻灯片&#xff1b;修改幻灯片的版式&#xff1b;节&#xff08;新增节&#xff0c;重命名节&#xff09;。 2.【字体】组中&#xff1a;设置字体&#xff0c;字体大小&…

根据顶层的id递归查询出全部子节点

效果图 根据输入的id为2查询出所有的红色框起来的节点 mapper接口 TSystemOrg getOrgByorgId(String orgId); List<TSystemOrg> getOrgListByParentId(String parentId);mapper.xml <!--根据id查询org--> <select id"getOrgByorgId" resultType&…

MFC列表控件用ADO添加数据实例

1、本程序基于前期我的博客文章《MFC用ADO连接ACESS数据库实例(免费源码下载)》 程序功能通过编辑框、组合框实时将数据写入ACESS数据库并在列表控件上显示。 2、在主界面资源视图上加上一个按钮控件、两个静态文本、一个编辑框IDC_EDIT1变量名name、一个组合框IDC_COMBO1变量名…

python实验一 简单的递归应用

实验一 实验题目 1、兔子繁殖问题(Fibonacci’s Rabbits)。一对兔子从出生后第三个月开始&#xff0c;每月生一对小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子只生不死&#xff0c;一月份抱来一对刚出生的小兔子&#xff0c;问一年中每个月各有多少只兔子。 &…

Ubuntu启动后进入GRUB故障-Minimal BASH like line editing is supported.

目录 1.问题描述 2.解决方案 2.1 临时性办法 2.2 工具永久性修复 总结 1.问题描述 PC安装Ubuntu系统第二天重启后提示GUN GRUB version 2.04&#xff0c;之前是WindowsOS装Ubuntu后无法进入图形界面。具体原因据网友提供线索据说是由于在Windows上进行更新/重装/修改了引…

tomcat打开乱码修改端口

将UTF-8改成GBK 如果端口冲突&#xff0c;需要修改tomcat的端口

C语言 | Leetcode C语言题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; char* getPermutation(int n, int k) {int factorial[n];factorial[0] 1;for (int i 1; i < n; i) {factorial[i] factorial[i - 1] * i;}--k;char* ans malloc(n 1);ans[n] \0;int valid[n 1];for (int i 0; i < n; i) {val…

拼多多怎么推广才有自然流量

在拼多多平台上获取自然流量&#xff0c;商家可以采取以下几种策略&#xff1a; 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最…

49. 【Android教程】HTTP 使用详解

在你浏览互联网的时候&#xff0c;绝大多数的数据都是通过 HTTP 协议获取到的&#xff0c;也就是说如果你想要实现一个能上网的 App&#xff0c;那么就一定会和 HTTP 打上交道。当然 Android 发展到现在这么多年&#xff0c;已经有很多非常好用&#xff0c;功能非常完善的网络框…

算法--分治法

分治法是一种算法设计策略&#xff0c;它将一个复杂的问题分解成两个或多个相同或相似的子问题&#xff0c;直到这些子问题可以简单地直接解决。然后&#xff0c;这些子问题的解被合并以产生原始问题的解。 分治法通常遵循以下三个步骤&#xff1a; 分解&#xff1a;将原问题…

前端页面平滑过渡解决方案

一、问题产生 在使用图片作为页面背景时&#xff0c;无法使用transtion进行平滑过渡&#xff0c;直接切换背景又会降低使用体验。 二、解决方式 使用clip-path对背景图片裁剪配合transtion实现平滑过渡的效果 三、效果展示 网址&#xff1a;ljynet.com 四、实现方式 tem…

SQL LPAD函数使用

Oracle SQL 中的 LPAD 函数是一个用于格式化字符串的函数&#xff0c;它会在给定字符串的左侧填充指定的字符&#xff0c;直到字符串达到指定的长度。这个函数在数据库查询中非常有用&#xff0c;尤其是在需要对输出进行格式化时&#xff0c;比如在报表中。 LPAD 函数的语法 …

如何确定控制器的采样频率?

确定控制器的采样频率通常涉及到系统的要求、控制算法的稳定性以及硬件的性能等因素。在确定采样频率时&#xff0c;需要平衡这些因素&#xff0c;以确保系统的稳定性和性能。 在LabVIEW中进行分析时&#xff0c;可以按照以下步骤进行&#xff1a; 确定系统要求&#xff1a;首…

古典密码学简介

目录 C. D. Shannon: 一、置换密码 二、单表代替密码 ① 加法密码 ② 乘法密码 ③密钥词组代替密码 三、多表代替密码 代数密码 四、古典密码的穷举分析 1、单表代替密码分析 五、古典密码的统计分析 1、密钥词组单表代替密码的统计分析 2、英语的统计规…

XYCTF2024 RE ez unity 复现

dll依然有加壳 但是这次global-metadata.dat也加密了&#xff0c;原工具没办法用了&#xff0c;不过依然是可以修复的 a. 法一&#xff1a;frida-il2cpp-bridge 可以用frida-il2cpp-bridge GitHub - vfsfitvnm/frida-il2cpp-bridge: A Frida module to dump, trace or hijac…

css实现瀑布流布局

瀑布流布局也可以通过纯CSS来实现&#xff0c;使用CSS的column属性可以实现多列布局。下面是一个使用纯CSS实现瀑布流布局的示例&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"…

Opecv-Python常用算子库(总结)

文章目录 1 常用算子梗概2 实际项目中的总结 1 常用算子梗概 1.1 读取图像 cv2.imread(filename, flags) 1.2 显示图像 cv2.imshow(winname, mat) 1.3 保存图像 cv2.imwrite(filename, mat) 1.4 改变图像大小 cv2.resize(src, dsize, dstNone, fxNone, fyNone, interpolationN…