IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 动态规划学习记录-7 删除并获得点数 -> 正文阅读

[数据结构与算法]动态规划学习记录-7 删除并获得点数

这题可以化成与打家劫舍相似的格式来求解

为什么这么说呢?

回忆打家劫舍,当小偷偷了当前房屋之后,就不再考虑上一间房屋和下一间房屋。

本题中,当取了某个数值num则不再考虑num-1和num+1。

但是不同点在于

打家劫舍的遍历是顺序的,从第一间房屋到最后一间房屋,但是本题中对数组的遍历是无序的,对于例子

[3,4,2]

我可以先获得4,之后消除3

也可以先获得3,之后消除4和2

并且,本题中数组的数值可能重复,可能出现如下情况:

[3,3,3,3,2,2,2,2]

为了简化计算,先考虑数组中重复的情况,就上面的情况而言,第一次取3,则会消除所有的2,之后再取3,则不会对当前数组产生任何影响,因为在第一次取出时就已经被消除了,所以可以利用桶排序,记录出现的次数,这样一来,简化了?和?删除?这两个操作。

并且,如果对比桶排序后的数组和打家劫舍的数组,会发现它们的意义是惊人的相似,

对于当前房屋会有偷与不偷两种选项,同样的,对于当前的数,会有取与不取的情况,

偷当前房屋,则不考虑上一个房屋和下一个房屋,同样的,对于取当前的数,则不考虑上一个数字和下一个数字

所以,我们可以用桶排序后的数组用动态规划,代码与打家劫舍相似

class Solution:
    def deleteAndEarn(self, nums):
        record=[0]*(max(nums)+1)
        for index,num in enumerate(nums):
            record[num]=record[num]+1
        tmp={0:0,1:record[1]}
        i=1
        for i in range(2,len(record)):
            tmp[i] = max(tmp[i-2]+record[i]*i,tmp[i-1])
        return tmp[i]

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 21:57:54  更:2022-02-05 22:00:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:34:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码