Leetcode—198.打家劫舍【中等】

2023每日刷题(五十二)

Leetcode—198.打家劫舍

在这里插入图片描述

算法思想

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

具体思路

首先,我们从上面的题目描述中抽象出题意。
● 从一个非负整数数组中找到一个子序列,并且该子序列的和最大
● 子序列中每个数的位置不能够相邻。举例来讲,如果子序列中包含位置为1的数,就不能包括位置为2的数。
在这里插入图片描述

实现代码

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();if(n == 1) {return nums[0];}if(n == 2) {return max(nums[0], nums[1]);}int f[n];memset(f, 0, sizeof(f));f[0] = nums[0];f[1] = max(nums[1], nums[0]);for(int i = 2; i < n; i++) {f[i] = max(f[i - 1], f[i - 2] + nums[i]);}return f[n - 1];}
};

运行结果

在这里插入图片描述

空间优化实现代码

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();if(n == 1) {return nums[0];}if(n == 2) {return max(nums[0], nums[1]);}int f0 = 0, f1 = 0, new_f = 0;f0 = nums[0];f1 = max(nums[1], nums[0]);for(int i = 2; i < n; i++) {new_f = max(f1, f0 + nums[i]);f0 = f1;f1 = new_f;}return new_f;}
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

Leetcode—1466.重新规划路线【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—1466.重新规划路线 算法思想 实现代码 class Solution { public:int minReorder(int n, vector<vector<int>>& connections) {vector<pair<int, int>> g[n];for(auto e: connections) {in…

JS的变量提升ES6基础

JS的变量提升&ES6基础 变量var关键字var声明作用域实例一实例二多个变量 变量提升 let关键字暂时性死区全局声明for循环中使用let const关键字 变量 ECMAScript变量时松散类型的&#xff0c;意思是变量可以用于保存任何类型的数据。 声明变量&#xff1a;var 、const、let …

阶梯电价1_分支结构 C语言xdoj27

题目&#xff1a;阶梯电价计费 类别&#xff1a;流程控制 时间限制&#xff1a;2S 内存限制&#xff1a;10000Kb 问题描述&#xff1a; 电价分三个档次&#xff0c;[0,110]度电&#xff0c;每度电0.5元&#xff1b;(110,210]度电&#xff0c;超出110部分每度电0.55元&…

git-vscode

git-vscode ctrlshiftp 创建分支 create branch 直接切到新的分支了 切换分支 直接点左下角自己选择 vscode中配置仓库 https://blog.csdn.net/zora_55/article/details/129709251 推送tag tag作用就是在 Git 中&#xff0c;标记存储库历史记录中特定提交的一种方式。t…

【Linux】无法使用 screenfetch 查看系统信息,报错 command not found: screenfetch

问题描述 screenfetch是一个命令行工具&#xff0c;用于在终端显示系统的硬件和软件信息。它会收集各种系统和环境的信息&#xff0c;并以彩色 ASCII 艺术的形式在终端中展示出来。 当你在终端中运行screenfetch命令时&#xff0c;它会检测你的操作系统、主机名、内核版本、C…

IntelliJ IDEA 2023.3发布,更新AI助手,运行相当流畅,再也不卡了

这两天Jetbrains来了一波大的更新&#xff0c;推出了2023.3正式版&#xff0c;均做了不少优化&#xff0c;最重要的是大家期待已久的Ai Assistant插件本次更新也正式推出&#xff0c;助力大家提高Coding效率。但是很遗憾&#xff0c;目前我们无法使用&#xff0c;因为该插件底层…

[架构之路-256]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 软件系统不同层次的复用与软件系统向越来越复杂的方向聚合

目录 前言&#xff1a; 一、CPU寄存器级的复用&#xff1a;CPU寄存器 二、指令级复用&#xff1a;二进制指令 三、过程级复用&#xff1a;汇编语言 四、函数级复用&#xff1a;C语言 五、对象级复用&#xff1a;C, Java, Python 六、组件级复用 七、服务级复用 八、微…

计算机视觉-03-使用U-Net实现肾脏CT分割(包含数据和代码)

文章目录 0. 数据获取1. 介绍1.1 简介1.2 任务介绍1.3 数据集介绍1.3.1 介绍1.3.2 数据预处理建议 1.4 代码实现参考1.5 训练过程1.5.1 参数设置1.5.2 可视化1.5.3 结果分析 0. 数据获取 关注公众号&#xff1a;『AI学习星球』 回复&#xff1a;肾脏CT分割 即可获取数据下载。…

高精度时钟芯片SD2405

概要 SD2405是一款非常优秀的RTC解决方案&#xff0c;为了能让用户在Arduino上有一款方便易用的时钟模块。该模块是一款内置晶振&#xff0c;支持IIC串行接口的高精度时钟模块&#xff1b;内置一次性工业级电池&#xff0c;可保证外部掉电的情况下&#xff0c;可以继续工作5~8…

实例分割 Mask-RCNN

参考文章 使用LabelMe标注目标检测数据集并转换为COCO2017格式_labelme转coco-CSDN博客 数据集选择 voc 这次不选择voc&#xff0c;因为文件组织太难了 voc2012文件夹组织 COCO COCO介绍 MC COCO2017年主要包含以下四个任务&#xff1a;目标检测与分割、图像描述、人体关…

KP 2sv Authenticator一款免费处理亚马逊两步验证码的软件

KP 2sv Authenticator 被誉为一款免费而强大的亚马逊两步验证软件&#xff0c;操作简便轻松。 软件使用方法极为简单&#xff0c;用户只需直接输入身份验证应用程序生成的代码&#xff0c;即可迅速生成随机验证码&#xff0c;帮助用户顺利完成亚马逊的两步验证流程。这款小软件…

有了安卓模拟器,就能在Windows 10或11上像使用安卓操作系统一样使用安卓

你可以使用Android模拟器在Windows 11或Windows 10中运行Android应用程序。如果你喜欢的应用程序只在手机上运行,但你想在电脑上使用,这些模拟器会很有用。 BlueStacks 与整个操作系统模拟器不同,BlueStacks只在Windows上模拟Android应用程序。它真的很容易使用,所以你不需…

香港云服务器:全面介绍与使用场景分析

这几年基于国内互联网技术的发展&#xff0c;各类海外贸易的兴起&#xff0c;很多网站都启用了海外云服务。这其中&#xff0c;香港的 IDC 市场异常火爆。也不奇怪&#xff0c;就目前来看&#xff0c;国内大多数网站的访问用户在国内外均有涉及&#xff0c;而香港云服务器恰好满…

Java第二十一章总结

网络编程三要素 ip地址&#xff1a;计算机在网络中的唯一标识 端口&#xff1a;应用程序在计算机中唯一标识 协议&#xff1a;通信协议&#xff0c;常见有UDP和TCP协议 InetAddress类 表示Internet协议地址 //返回InetAddress对象 InetAddress byName InetAddress.…

全国公共汽车、出租车拥有情况及客运量、货运量数据,shp、excel数据均有,多指标可查询

基本信息. 数据名称: 全国公共汽车、出租车拥有情况及客运量、货运量数据 数据格式: Shp、Excel 数据时间: 2020-2022年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;中国城市统计年鉴 数据字段&#xff1a; 序号字段名称字段说明1xzqhdm行政区划代码…

机器学习基础知识分享:深度学习

深度学习&#xff08;Deep Learning&#xff09;是近年来发展十分迅速的研究领域&#xff0c;并且在人工智能的很多子领域都取得了巨大的成功&#xff0e;从根源来讲&#xff0c;深度学习是机器学习的一个分支&#xff0c;是指一类问题以及解决这类问题的方法。 深度学习 为了…

vue中的内置指令v-model的作用和常见使用方法以及自定义组件上的用法

一、v-model是什么 v-model是Vue框架的一种内置的API指令&#xff0c;本质是一种语法糖写法&#xff0c;它负责监听用户的输入事件以更新数据&#xff0c;并对一些极端场景进行一些特殊处理。在Vue中&#xff0c;v-model是用于在表单元素和组件之间创建双向数据绑定的指令。它…

【AIGC】大语言模型的采样策略--temperature、top-k、top-p等

总结如下&#xff1a; 图片链接 参考 LLM解码-采样策略串讲 LLM大模型解码生成方式总结 LLM探索&#xff1a;GPT类模型的几个常用参数 Top-k, Top-p, Temperature

【动态规划系列】环形子数组的和-918

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

linux下的进程程序替换

进程程序替换 替换概念替换函数execl()execv()execvp()/execlp()execle()/execvpe() 如何在C/C程序里面执行别的语言写的程序。小tips 替换概念 当进程调用一种exec函数时&#xff0c;该进程的用户空间代码和数据完全被新程序替换&#xff0c;从新程序的代码部分开始运行。调用…