力扣-740.删除并获得点数

力扣 740. 删除并获得点数 题目描述 给你一个整数数组 nums,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i],删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入:nums = [3,4,2] 输出:6 解释: 删除 4 获得 4 个点数,因此 3 也被删除。 之后,删除 2 获得 2 个点数。总共获得 6 个点数。 示例 2: 输入:nums = [2,2. 阅读详情

新建数组number来存取nums中每个数出现的个数总和,其中number中的i表示nums中的数,i位置对应的值表示,对应的数的总和

对于示例2,有number = [0,0,4,9,4]

表示nums中数字0总和0,数字1总和0,数字2总和4,数字3总和9,数字4总和4

由于删除 nums[i] 后,需要同时删除 nums[i]+1 和 nums[i]-1(nums[i]+1 和 nums[i]-1 不需要计点数),在number数组中意味着获取当前 number[i] 后,就不用获取 number[i]-1 和 number[i]+1

所以,把number中的值来计算打家劫舍力扣-198.打家劫舍_Node_Su的博客-优快云博客

class Solution(object):
    def deleteAndEarn(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        number = [0] * 10001
        n = len(nums)
        for i in range(n):
            number[nums[i]] += nums[i]
        return self.rob(number)

    def rob(self, nums):
        n = len(nums)
        dp = [0] * n
        dp[0] = nums[0]
        if n == 1:
            return nums[0]

        dp[1] = max(nums[1], nums[0])
        for i in range(2, len(nums)):
            dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])  # 不偷,偷
        return dp[len(dp) - 1]


if __name__ == '__main__':
    nums = [0, 0]
    Sol = Solution()
    res = Solution.deleteAndEarn(Sol, nums)
    print(res)

删除并获得点数 leetcode740 java 给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2]输出:6解释:删除 4 获得 4 个点数,因此 3 也被删除。之后,删除 2 获得 2 个点数。总共获得 6 个点数。 阅读详情

相关推荐

如何用Arduino和HX711压力传感器制作一个简易电子秤(含OLED显示)

本文详细介绍了如何使用Arduino、HX711压力传感器和OLED显示屏制作一个简易电子秤。从硬件连接到软件编程,提供了分步教程,包括核心元件功能解析、接线方法、库安装、模块测试以及关键的校准流程。项目实践性强,适合创客和DIY爱好者学习嵌入式系统与传感器应用。

tea88的博客 536

力扣740. 删除并获得点数

这道题相当于当你选定一个数时,你左右两侧-1,+1的两个数都不能选了,所以,设置一个dp数组,长度为nums数组中的最大值,存储在nums数组中出现的相同元素之和,然后判断dp。的大小关系,取最大值进行保留,这样这个最大值就相当于nums中,所有小于i的数,所能删除的最大点数。之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。删除 3 获得 3 个点数,接着要删除两个 2 和 4。之后,删除 2 获得 2 个点数。总共获得 6 个点数。删除 4 获得 4 个点数,因此 3 也被删除。

a2730595898的博客 150

详解MegatronLM序列模型并行训练(Sequence Parallel)

MegatronLM的第三篇论文是2022年出的。在大模型训练过程中显存占用过大往往成为瓶颈,一般会通过recomputation重计算的方式降低显存占用,但会带来额外的计算代价。这篇论文提出了两种方法,分别是和,这两种方法和Tensor并行是可以相结合的,可以有效减少不必要的计算量。下图中绿色部分表示不同模型中需要用于保存activation需要的显存大小,蓝色部分表示不同模型中需要用于保存parameter和optimizer state需要的显存大小。红色线表示A100的显存大小80G。

分享机器学习、深度学习、分布式计算、MLSys相关领域知识 1万+

[力扣c语言实现]740. 删除与获得点数

740. 删除与获得点数1. 题目描述2.代码如下 1. 题目描述 给定一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入: nums = [3, 4, 2] 输出: 6 解释: 删除 4 来获得 4 个点数,因此 3 也被删除。 之后,删除 2 来获得 2 个

dengwodaer的博客 384

Ubuntu1804 关于ubuntu18.04下载软件仓库信息失败,请检查网络连接 的解决方案

今天电脑在更换软件源的时候遇到了这个问题。出现了如上图所示的错误信息。 尝试了各家优快云的博客之后,发现方法大同小异,均无法解决。 方法大多都是要求更换软件源,如下所示: 打开“Ubuntu软件中心”-->点击“编辑”-->点击“软件源”-->在Ubuntu软件界面,“下载自”默认是“中国的服务器”,改为“主服务器”试试 2.打开更新管理器-》设置-》选择站点-》...

weixin_43729409的博客 1万+

20-CUDA规约算法:并行求和优化策略-✨

本文介绍了GPU上高效并行规约(Reduction)算法的优化技巧。规约是将大量数据合并为单个值的基础计算模式,广泛应用于科学计算等领域。文章从基础并行规约实现出发,逐步讲解了三种关键优化策略:1)交错寻址减少共享内存bank冲突;2)循环展开降低分支预测开销;3)多级规约处理大规模数据。性能对比显示,优化策略可带来最高4.5倍的加速效果。最后总结了最佳实践,包括合理使用共享内存、循环展开和warp级优化等技巧。这些优化方法可显著提升GPU计算密集型应用的性能。

2301_79143213的博客 172

力扣每日一题:740.删除并获得点数 python动态规划详解!

740.删除并获得点数 https://leetcode-cn.com/problems/delete-and-earn/ 难度:中等 题目: 给你一个整数数组nums,你可以对它进行一些操作。 每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。 之后,你必须删除每个等于nums[i] - 1或nums[i] + 1的元素。 开始你拥有 0 个点数。返回你能通过这些操作...

清风Python 480

关于机器人精度的总结(重复精度和绝对精度区分)

机械臂是工业生产中的重要设备,在焊接码垛 以及 非 接触测量等 领域中有 着重要应 用。然而由于机械臂本体制造中存在机械制造公差装配误差导致的运动学参数误差以及电机转角与关节转角间减速比误差等,导致机械臂存在。因此需要对机械臂进行标定,提高机械臂的绝对定位精度。ABB系列某款机器人精度参数表。

大胡子大叔的专栏 1万+

力扣--动态规划740.删除并获得点数

值得一提的是:例如2 2 3 3 3 4 这个,你会发现,虽然一次你只能取一个数,但是可以取多次,就比如,我第一次取3,两个2 和 4都删了,但是我还可以继续取两次3,2和4都删完了嘛,又没影响。所以我们把每个数(3)所占的点数(3×3=9)组成个新数组,用。数组大小为最大元素值加一,初始化所有元素为零。返回动态规划数组中最后一个元素的值,即为最终的最大点数。首先,找到输入数组中的最大元素,以确定新数组的大小。,选择是否包含当前元素,以确保不相邻元素被选择。遍历原始数组,将相同的元素值的点数累积到。

weixin_73865269的博客 492

4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南

首先第19行CREATEDATA创建er_entityset实例,指定其类型为zcl_zbook_manage_mpc=>tt_book,接着把这个引用映射到刚刚第五行定义的FIELD-SYMBOLS变量上去,这样的话,接下来我们对FIELD-SYMBOLS进行的操作,就会自动反应回引用变量er_entityset.因为我们可能在这个方法里,返回多条图书信息,所以需要用内表类型,而非单条记录的ts_book.ts_book代表一本图书的数据结构。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2962

HTML满屏跳动的爱心(完整代码)

HTML语言实现满屏跳动爱心的完整代码。

AIGC 12万+

力扣LeetCode: 740 删除并获得点数

动态规划练习

weixin_73982851的博客 1110

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

740. 删除并获得点数(leetcode)

每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。删除 3 获得 3 个点数,接着要删除两个 2 和 4。之后,删除 2 获得 2 个点数。总共获得 6 个点数。删除 4 获得 4 个点数,因此 3 也被删除。输入:nums = [2,2,3,3,3,4]输入:nums = [3,4,2]总共获得 9 个点数。

lulutoy的博客 1872

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

力扣题解:740.删除并获得点数

本文介绍了力扣题目"删除并获得点数"的解题思路。该问题要求从数组中删除元素获取点数,同时删除相邻数值的元素。解题步骤如下:1)统计每个数值及其总点数;2)利用动态规划,借鉴"打家劫舍"问题的思路,通过状态转移公式dp[i] = max(dp[i-2] + v, dp[i-1])计算最大点数;3)遍历所有可能数值,最终返回最大值。该方法避免了直接删除相邻元素,而是通过动态规划间接处理相邻数值的约束条件。

雨溪的博客 1102

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

力扣 -- 740. 删除并获得点数

力扣 -- 740. 删除并获得点数

weixin_70056514的博客 334

leetcode 740. 删除并获得点数

> Problem: [740. 删除并获得点数](https://leetcode.cn/problems/delete-and-earn/description/) [https://leetcode.cn/circle/discuss/tXLS3i/](https://leetcode.cn/circle/discuss/tXLS3i/) [TOC] # 思路 > 动态规划的呢,考虑到+1和-1的数字都不能使用,而且相同的数字肯定可以全部使用,主要选中了一个数字,相同的数字都可以使用,所以可

邹九的个人博客 630

【Leetcode】740- 删除并获得点数

动态规划算法的应用,将原问题转化为《打家劫舍》类型的问题处理

wanlinBee的博客 1147

力扣740题:删除并获得点数(动态规划问题)

小学生一枚,没参加培训机构,信奥自学中,所以命名不规范、代码不优美是在所难免的,欢迎指正。,你可以对它进行一些操作。每次操作中,选择任意一个。返回你能通过这些操作获得的最大点数。之后,你必须删除所有等于。数组、桶排序、动态规划。

2501_91614020的博客 402

leetcode 740.删除并获得点数

leetcode 740.删除并获得点数 题干 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入:nums = [3,4,2] 输出:6 解释: 删除 4

玛软的垃圾桶 251

[算法] [leetcode-740] 删除并获得点数

每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。删除 3 获得 3 个点数,接着要删除两个 2 和 4。之后,删除 2 获得 2 个点数。总共获得 6 个点数。删除 4 获得 4 个点数,因此 3 也被删除。输入:nums = [2,2,3,3,3,4]输入:nums = [3,4,2]总共获得 9 个点数。

Be yourself. 429

LeetCode 740. 删除并获得点数

一、题意 给你一个整数数组 nums ,每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除所有等于 nums[i] - 1和 nums[i] + 1的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 1<=nums.length<=2∗1041 <= nums.length <= 2*10^41<=nums.length<=2∗104 1<=nums[i]<=1041 <= nums[i]

Genius_J的博客 3929

Leetcode 740. 删除并获得点数 DP

【代码】Leetcode 740. 删除并获得点数 DP。

想买很多漂亮衣服但是买不起的博客 225

[动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数

[动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数

好兄弟起把大狙 361

LeetCode(740. 删除并获得点数)

LeetCode(740. 删除并获得点数) 题目描述: 给你一个整数数组nums,你可以对它进行一些操作。 每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除每个等于nums[i] - 1或nums[i] + 1的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入:nums = [3,4,2] 输出:6 解释: 删除 4 获得 4 个点数,因此 3 也被删除。 之后,删除 2 获得 2 个点...

我就吃一口的BLOG 399
上一篇: 力扣-213.打家劫舍 II
下一篇: 力扣-55.跳跃游戏
Node_Su
博客等级 码龄10年 17粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值