【Hot100】LeetCode—198. 打家劫舍

news2024/11/14 14:29:46

目录

  • 1- 思路
    • 动规五部曲
  • 2- 实现
    • 198. 打家劫舍——题解思路
  • 3- ACM 实现


  • 原题链接:198. 打家劫舍

1- 思路

动规五部曲

  • 1- 定义 dp 数组
    • int[] dp = new int[nums.length]
    • dp[i] 代表考虑下标i 偷的最大金币数
  • 2- 递推公式
    • 当偷 idp[i-2] + nums[i]
    • 当不偷 idp[i-1]
    • 结论:dp[i] = Math.max(dp[i],dp[i-1])
  • 3- 初始化
    • dp[0] = nums[0];
    • dp[1] = Math.max(nums[0],nums[1]);
  • 4- 遍历顺序
    • i2 开始遍历

2- 实现

198. 打家劫舍——题解思路

在这里插入图片描述

class Solution {
        public int rob(int[] nums) {
        
        // 1.定义 dp 确定含义
        // dp[i] 代表,遍历到 i 的最大金币数
        int len = nums.length;
        if(len==1){
            return nums[0];
        }
        int[] dp = new int[len];

        // 2. 递推公式
        // 偷当前 dp[i-2] + nums[i];
        // 不偷 dp[i-1]
        // dp[i] = Math.max(dp[i-1] , dp[i-2] + nums[i]);

        // 3. 初始化
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0],nums[1]);

        for(int i = 2 ; i < len;i++){
            dp[i] = Math.max(dp[i-1] , dp[i-2] + nums[i]);
        }
        return dp[len-1];
    }
}

3- ACM 实现

public class rob {


    public static int rob(int[] nums){

        // 1. 定义 dp 数组
        // dp[i] 代表 第 i 天获得的最大金币数
        int len = nums.length;
        if (len == 1) {
            return nums[0];
        }
        int[] dp = new int[len];

        // 2. 递推公式
        // i 偷 dp[i-2] + nums[i]
        // i 不偷 dp[i-1]
        // dp[i] = Math.max(dp[i-2]+nums[i],dp[i-1]);

        // 3. 初始化
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0], nums[1]);

        // 4. 遍历
        for (int i = 2; i < len; i++) {
            dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);
        }

        return dp[len - 1];
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String[] parts = input.split(" ");
        int[] nums = new int[parts.length];
        for(int i = 0 ; i < parts.length;i++){
            nums[i] = Integer.parseInt(parts[i]);
        }
        System.out.println("结果是"+rob(nums));
    }
}

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

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

相关文章

Typora调整图片大小:两种方式zoom或width/height

目录 01 zoom方式02 width/height方式2.1 width方式 2.2 height方式 01 zoom方式 语法: <img src"your-image-url" style"zoom:your-zoom-integer"/> 示例&#xff1a;将图片(./image/market.jpg)调整为原图减少50%大小的命令为&#xff1a; …

[数据集][目标检测]肺炎检测数据集VOC+YOLO格式4983张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4983 标注数量(xml文件个数)&#xff1a;4983 标注数量(txt文件个数)&#xff1a;4983 标注…

github actions CICD简单使用案例

参考&#xff1a; https://developer.aliyun.com/article/1540773 https://github.com/ViggoZ/producthunt-daily-hot/blob/main/.github/workflows/generate_markdown.yml 1、创建github项目 目录&#xff1a; .github/workflows/fetch-news.yml actions执行yaml&#xff08;…

Linux 下 C/C++ 程序编译的过程

目录 一、GCC 工具链二、编译过程1、预处理2、编译3、汇编4、链接 本文将介绍如何将 C/C 语言编写的程序转换成为处理器能够执行的二进制代码的过程&#xff0c;包括四个步骤&#xff1a;预处理&#xff08;Preprocessing&#xff09;编译&#xff08;Compilation&#xff09;汇…

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及&#xff0c;越来越多的食堂正在引入小程序来优化采购流程&#xff0c;减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式&#xff0c;为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小…

【MATLAB】数据和字符串类型转换

数据和字符串类型转换 在 MATLAB 中&#xff0c;支持不同数据类型与字符串类型之间的转换&#xff0c;这需要使用不同的函数来实现。此外&#xff0c;相同的数据&#xff0c;特别是整数&#xff0c;可以用多种格式表示&#xff0c;例如十进制、二进制或十六进制。在 C 语言中&a…

vulhub远程执行命令漏洞CVE-2017-12636

1.打开环境 2.访问目标网站 CVE-2017-12636是一个任意命令执行漏洞&#xff0c;我们可以通过config api修改couchdb的配置query_server&#xff0c;这个配置项在设计、执行view的时候将被运行。 3.在网站中发现一个user表&#xff0c;我们可以带你进去看一下 里面是一个用户名…

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目&#xff1a; 牛牛发明了一种新的四舍五…

C语言手撕归并——递归与非递归实现(附动画及源码)

&#x1f916;&#x1f4bb;&#x1f468;‍&#x1f4bb;&#x1f469;‍&#x1f4bb;&#x1f31f;&#x1f680; &#x1f916;&#x1f31f; 欢迎降临张有志的未来科技实验室&#x1f916;&#x1f31f; 专栏&#xff1a;数据结构 &#x1f468;‍&#x1f4bb;&#x1f…

【Python基础】Python函数

本文收录于 《Python编程入门》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程基础知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、函数的定义与调用三、函数参数3.1 位置参数3.2 默认参数3.3 可变数量参数&#xff08;或不定长参数…

springboot项目--后端问题记录

springboot项目后端记录 前言一、包1. lombok--自动生成勾子方法作用依赖使用 2. Validated--自动校验作用依赖使用一般参数校验实体参数校验 结论 3. JWT(json web taken) 令牌生成什么是takenJWT包依赖使用获取taken校验 封装的工具类使用 二、处理技巧1. 全局异常处理作用代…

服务器禁用远程(22)

vim /etc/ssh/sshd_config 修改 ListenAddress 0.0.0.0 为ListenAddress localhost 修改完后 重启一下sshd systemctl restart sshd 修改就生效了

【 html+css 绚丽Loading 】000044 两仪穿行轮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

数据库的配置2:客户端navicat的安装与连接数据库的方法

二.客户端的配置&#xff1a; 1.navicat ①安装&#xff1a; 破解根据文档进行破解即可 链接: https://pan.baidu.com/s/1M5KUv_fgRlFA50VfcV1VqA 提取码: j4a2 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 安装步骤很简单&#xff0c;直接下一步就好&…

Pandas处理数据,基本应用

Pandas是一个Python包&#xff0c;提供快速、灵活且表达力强的数据结构&#xff0c;旨在使处理“关系型”或“带标签”数据。专门设计用于进行数据分析和操作&#xff0c;它是建立在numpy之上&#xff0c;提供了易于使用的数据结构和数据分析工具。Pandas最主要的数据结构是Dat…

开启Hyper-V之后用不了VMware了,怎么破?

正文共&#xff1a;800 字 7 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面我们介绍了如何在Windows 10操作系统中启用Hyper-V虚拟化服务&#xff08;什么&#xff1f;Windows自带的Hyper-V虚拟化你都没用过&#xff1f;&#xff09;&#xff0c;但是在启用Hyper-V服务之…

vulhub spring 远程命令执行漏洞(CVE-2016-4977)

1.执行以下命令启动靶场环境并在浏览器访问 cd /vulhub/spring/CVE-2016-4977#进入漏洞环境所在目录 docker-compose up -d #启动靶场 docker ps #查看容器信息 2.输入以下命令测试环境 192.168.0.107:8080/oauth/authorize?response_type${2*2}&client_idacme&sc…

RMSE 和 RMS 介绍

RMSE&#xff08;Root Mean Square Error&#xff09;和 RMS&#xff08;Root Mean Square&#xff09;都是衡量误差或数据变动的统计量。它们在数据分析、机器学习和统计中应用广泛。以下是它们的详细介绍&#xff1a; 1. RMSE&#xff08;均方根误差&#xff09; 定义&…

【verilog】1. 流水灯例程

文章目录 前言一、定义概念 缩写1. verilog 二、性质三、代码分解释四、完整代码参考文献 前言 数电课设 一、定义概念 缩写 1. verilog Verilog 是一种以代码形式来描述数字系统和电路的硬件描述语言 (HDL)。它由 Gateway Design Automation 在 20 世纪 80年代中期开发&a…

9.06.

#include "mywidget.h"mywidget::mywidget(QWidget *parent): QMainWindow(parent) {/*---------------------窗口设置&#xff08;无边框&#xff09;----------------------*/this->setWindowFlag(Qt::FramelessWindowHint);//窗口大小this->resize(590,950)…