每日一题,力扣leetcode Hot100之198.打家劫舍

news2024/12/23 22:48:30

这一道题乍一看可以双层循环暴力解,但是仔细一想有可能最大利益并不是一家隔着一家偷,我可以间隔很多家偷,所以 这个题的思路还是有点像爬楼梯,用动态规划解。

首先确立动态规划的初始条件:

1.dp[0]=nums[0]只有一家

2.dp[1]=max(nums[0],nums[1])有两家选一家多的

然后确立动态规划的循环条件:

dp[i]应该是什么

1.第i家能拿,那么dp[i]=nums[i]+dp[i-2],能拿说明上一家没拿过,那么我们就要这家的值加上dp[i-2],你也甭管上上家拿过没。

2.第i家不能拿,说明上家拿过了,那么dp[i]=dp[i-1]

那么dp[i]就取这两个其中的最大值。

class Solution:
    def rob(self, nums: List[int]) -> int:
        #如果为空列表则只能偷0元
        if not nums:
            return 0
        size=len(nums)
        #如果长度为1则只能偷一家直接返回
        if size==1:
            return nums[0]
        #如果长度为2则能偷两家,比两家哪个大
        if size==2:
            return max(nums[0],nums[1])
        #如果超过这个范围则进行dp
        #dp初始条件
        dp=[0]*size
        dp[0]=nums[0]
        dp[1]=max(nums[0],nums[1])
        #dp的循环条件,从2开始一直到最后一个元素
        for i in range(2,size):
            dp[i]=max(dp[i-1],dp[i-2]+nums[i])
        return dp[size-1]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2112328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业邮箱怎么设置邮箱监控(老板监控员工邮件的方法推荐)【企业管理必备】

在现代企业中,电子邮件作为主要的沟通工具,不仅承载着日常的工作信息,还涉及大量机密内容。为了确保信息安全、提高工作效率,许多企业希望设置邮件监控,了解员工的邮箱使用情况。 本文将详细介绍企业邮箱如何设置邮箱…

Qt-使用qrc文件管理资源(15)

目录 qrc机制 创建qrc文件 1.在项目中创建一个qrc文件 2.导入图片到qrc文件中 2.2先设置一个前缀 2.3把刚刚使用的图片导入到资源文件中 测试结果 图片文件到哪去了? qrc机制 上篇文章中,我们提到了窗口的图片怎么用QIcon进行修改,…

MySQL record 01 part

更改密码: alter user rootlocalhost identified with mysql_native_password by ‘123456’; 注意: 在命令行方式下,每条MySQL的命令都是以分号结尾的,如果不加分号,MySQL会继续等待用户输入命令,直到MyS…

USB - 笔记

1.USB接口区分 2 充电宝 图中提到的各种充电协议都是用于快速充电技术的标准,适用于不同品

聚类算法指南

欢迎来到雲闪世界。 聚类是任何数据科学家必备的技能,因为它对解决实际问题具有实用性和灵活性。本文概述了聚类和不同类型的聚类算法。 什么是聚类? 聚类是一种流行的无监督学习技术,旨在根据相似性将对象或观察结果分组。聚类有很多有用…

c++的封装

实现my_string中可能实现的功能 #include <iostream> #include<cstring> using namespace std; class my_string {char *str; //记录c风格的字符串int size; //记录字符串的实际长度int capacit;//记录最大容量public://无参的构造函数my_string():size(0)…

护眼台灯十大排名有哪些?盘点2024年央视公认最好的护眼灯!

随着学业负担的加重和电子设备的广泛使用&#xff0c;青少年的近视问题变得日益严峻&#xff0c;近视率也在持续上升。导致近视的因素多样&#xff0c;不仅仅局限于电子屏幕的过度使用&#xff0c;还包括遗传因素、不良的用眼习惯、环境条件、营养不良以及过重的学习压力等&…

公司电脑能监控聊天记录吗?公司监控微信聊天记录的方法,一分钟速成!

在现代企业中&#xff0c;微信已经成为许多员工日常沟通的主要工具。虽然它极大地提高了工作效率&#xff0c;但也给公司管理带来了一些挑战&#xff0c;比如如何防止员工在工作时间闲聊、保护企业机密信息不外泄等。因此&#xff0c;不少公司希望对员工的微信聊天记录进行监控…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代&#xff0c;企业升级 IT 基础设施&#xff0c;已不再是选择题&#xff0c;而是必答题。 数字化办公时代&#xff0c;企业为何要升级 IT 基础设施&#xff1f; 随着时代变化与科技进步&#xff0c;人们的工作方式也发生了巨大变化。如今&#xff0c;远程办公、全…

FPGA编译与部署方法全方位介绍

FPGA编译与部署是FPGA开发中的核心环节&#xff0c;涉及从代码编写、调试到将设计部署到FPGA硬件的全过程。这个流程需要经过创建项目、编写FPGA VI、模拟调试、编译生成比特流文件&#xff0c;最后将设计部署到硬件上运行。编译的特点在于并行执行能力、定制化硬件实现以及复杂…

【Java数据结构】反射、枚举以及lambda表达式

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.反射 2.1反射定义 2.2反射主要应用场景 2.3Class类(反射机制的起源) 2.31获取Class类 2.32Class类常用方法 2.33获得类中的成员变量 2.34使用类中的成员…

Leetcode3258. 统计满足 K 约束的子字符串数量 I

Every day a Leetcode 题目来源&#xff1a;3258. 统计满足 K 约束的子字符串数量 I 解法1&#xff1a;暴力 暴力枚举每一个子字符串&#xff0c;看是否满足 k 约束。 代码&#xff1a; /** lc appleetcode.cn id3258 langcpp** [3258] 统计满足 K 约束的子字符串数量 I*/…

WebAPI(三)、 DOM 日期对象Date;获取事件戳;根据节点关系查找节点

文章目录 DOM1. 日期对象(1)、日期对象方法(2)、时间戳(3)、下课倒计时 2. 节点操作(1)、 查找节点&#xff08;根据节点关系找&#xff09;(2)、 增加节点&#xff1a;创建create、追加append、克隆clone(3)、 删除节点remove DOM 1. 日期对象 日期对象就是用来表示时间的对…

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期&#xff0c;通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈&#xff0c;因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发…

【Hot100算法刷题集】哈希-02-字母异位词分组(含排序构造键、自定义键、自定义哈希函数法)

&#x1f3e0;关于专栏&#xff1a;专栏用于记录LeetCode中Hot100专题的所有题目 &#x1f3af;每日努力一点点&#xff0c;技术变化看得见 题目转载 题目描述 &#x1f512;link->题目跳转链接 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺…

【解压即玩】PC版《最终幻想9》重制版 高清宽屏,怀旧经典

《最终幻想IX》&#xff08;日语&#xff1a;ファイナルファンタジーIX&#xff0c;英语&#xff1a;Final Fantasy IX&#xff0c;台港澳旧译为“太空战士IX”&#xff09;是由史克威尔&#xff08;现为史克威尔艾尼克斯&#xff09;为索尼PlayStation游戏机开发并发行的一款角…

元学习与机器学习

如图1 所示&#xff0c;机器学习的目标是要找一个函数f&#xff0c;这个函数可以是一个分类器&#xff0c;把几百张图 片输入进去&#xff0c;分类器就告诉我们分类的结果。元学习一样是找一个函数&#xff0c;但它要找的是一个学 习算法Fϕ∗&#xff0c;这个学习算法可以接受…

Java并发编程实战 06 | 为什么不建议使用线程优先级?

什么是线程优先级&#xff1f; 线程优先级是一个标识&#xff0c;用来提示操作系统或线程调度器哪个线程更重要、更需要优先执行。优先级通常是一个整数值。 在 Java 中&#xff0c;线程优先级的设置范围从 1 到 10&#xff0c;其中 1 是最低优先级&#xff0c;10 是最高优先…

2024 年高教社杯全国大学生数学建模竞赛C题—农作物的种植策略(讲解+代码+成品论文助攻)

2024数学建模国赛选题建议团队助攻资料-CSDN博客文章浏览阅读1k次&#xff0c;点赞20次&#xff0c;收藏24次。通过分析5个题目的特点&#xff0c;可知数学建模常用的模型大概可以分为五大类——https://blog.csdn.net/qq_41489047/article/details/141925859 本次国赛white学长…

WebAPI(四) BOM;延时函数;JS执行机制(同步异步);location对象;history对象;navigation对象

文章目录 BOM1. 定时器-延时函数2. JS执行机制(1)、同步与异步(2)、事件循环 3. location对象(1)、href属性获取完整的url地址(2)search属性获取地址中携带的参数(3) hash&#xff1a;获取地址中的#后边的部分(3) reload&#xff1a; 刷新当前页面&#xff0c;传入参数true表示…