当前位置: 首页 > news >正文

代码随想三刷动态规划篇7

代码随想三刷动态规划篇7

  • 198. 打家劫舍
    • 题目
    • 代码
  • 213. 打家劫舍 II
    • 题目
    • 代码
  • 337. 打家劫舍 III
    • 题目
    • 代码
  • 121. 买卖股票的最佳时机
    • 题目
    • 代码

198. 打家劫舍

题目

链接

代码

class Solution {public int rob(int[] nums) {if(nums.length==1){return nums[0];}if(nums.length==2){return Math.max(nums[0],nums[1]);}int[] dp = new int[nums.length];dp[0] = nums[0];dp[1] = Math.max(nums[0],nums[1]);for(int i=2;i<nums.length;i++){dp[i]= Math.max(dp[i-1],dp[i-2]+nums[i]);}return dp[nums.length-1];}
}

213. 打家劫舍 II

题目

链接

代码

class Solution {public int rob(int[] nums) {if(nums.length==1){return nums[0];}if(nums.length==2){return Math.max(nums[0],nums[1]);}int[] dpLeft = new int[nums.length];//不偷最后一个int[] dpRight = new int[nums.length];//不偷第一个dpLeft[0] = nums[0];dpLeft[1] = Math.max(nums[0],nums[1]);dpRight[1] = nums[1];if(nums.length>=3){dpRight[2] = Math.max(nums[1],nums[2]);}for(int i =2;i<nums.length-1;i++){//不偷最后一个dpLeft[i] = Math.max(dpLeft[i-1],dpLeft[i-2]+nums[i]);}for(int i =3;i<nums.length;i++){//不偷前一个dpRight[i] = Math.max(dpRight[i-1],dpRight[i-2]+nums[i]);}return Math.max(dpLeft[nums.length-2],dpRight[nums.length-1]);}
}

337. 打家劫舍 III

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {Map<TreeNode,Integer> map = new HashMap();public int rob(TreeNode root) {if(root==null){return 0;}if(map.containsKey(root)){return map.get(root);}int money = root.val;if(root.left!=null){money+=rob(root.left.left)+rob(root.left.right);}if(root.right!=null){money+=rob(root.right.left)+rob(root.right.right);}int res = Math.max(money,rob(root.left)+rob(root.right));map.put(root,res);return res;}
}

121. 买卖股票的最佳时机

题目

链接

代码

class Solution {public int maxProfit(int[] prices) {int[][] dp = new int[prices.length][2];dp[0][0] = 0;dp[0][1] = -prices[0];for(int i = 1;i<prices.length;i++){dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1]+prices[i]);dp[i][1] = Math.max(dp[i-1][1],-prices[i]);}return dp[prices.length-1][0];}
}

相关文章:

代码随想三刷动态规划篇7

代码随想三刷动态规划篇7 198. 打家劫舍题目代码 213. 打家劫舍 II题目代码 337. 打家劫舍 III题目代码 121. 买卖股票的最佳时机题目代码 198. 打家劫舍 题目 链接 代码 class Solution {public int rob(int[] nums) {if(nums.length1){return nums[0];}if(nums.length2){…...

linux应用开发基础知识(八)——内存共享(mmap和system V)

mmap内存映射 内存共享定义 内存映射&#xff0c;简而言之就是将用户空间的一段内存区域映射到内核空间&#xff0c;映射成功后&#xff0c;用户对这段内存区域的修改可以直接反映到内核空间&#xff0c;同样&#xff0c;内核空间对这段区域的修改也直接反映用户空间。那么对…...

上海小程序开发需要进行定制开发吗?

随着互联网技术与移动设备的不断成熟&#xff0c;小程序也已普及到人们日常生活的方方面面。随着企业与互联网联结的愈发深入&#xff0c;小程序的开发可以为企业带来更高效的经营模式&#xff0c;降本增效。那么&#xff0c;上海小程序作为无需安装且开发门槛较低的应用&#…...

Qt开发 | qss简介与应用

文章目录 一、qss简介与应用二、QLineEdit qss介绍与使用三、QPushButton qss1.常用qss1.1 基本样式表1.2 背景图片1.3 图片在左文字在右 2.点击按钮弹出菜单以及右侧箭头样式设置3.鼠标悬浮按钮弹出对话框 四、QCheckBox qss妙用&#xff1a;实时打开关闭状态按钮五、QComboBo…...

模块一SpringBoot(一)

maven记得配置本地路径和镜像 IJ搭建 SpringIntiallizer--》将https://start.spring.io改成https://start.aliyun.com/ 项目结构 Spring有默认配置&#xff0c; application.properties会覆盖默认信息&#xff1a; 如覆盖端口号server.port8888...

C语言 | Leetcode C语言题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; int robRange(int* nums, int start, int end) {int first nums[start], second fmax(nums[start], nums[start 1]);for (int i start 2; i < end; i) {int temp second;second fmax(first nums[i], second);first temp;}retur…...

​​​​Linux LVS 负载均衡群集

在业务量达到一定量的时候&#xff0c;往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡&#xff0c;当有服务出现异常&#xff0c;也能够自动剔除。但是负载均衡服…...

onTouch()与onTouchEvent()的区别

onTouch()和onTouchEvent()是Android中处理触摸事件的两个重要方法。它们用于不同的场景&#xff0c;并在事件分发机制中扮演不同的角色。以下是它们的详细区别和使用方法&#xff1a; onTouch() 方法 定义&#xff1a;onTouch(View v, MotionEvent event)是View.OnTouchList…...

计算机网络网络层复习题2

一. 单选题&#xff08;共22题&#xff0c;100分&#xff09; 1. (单选题)如果 IPv4 数据报太大&#xff0c;会在传输中被分片&#xff0c;对分片后的数据报进行重组的是&#xff08; &#xff09;。 A. 中间路由器B. 核心路由器C. 下一跳路由器D. 目的主机 我的答案: D:目的…...

[JS]面向对象ES6

class类 ES6是基于 class关键字 创建类 <script>// 1.定义类class Person {// 公有属性name// 公有属性 (设置默认值)age 18// 构造函数constructor(name) {// 构造函数的this指向实例化对象// 构造函数的作用就是给实例对象设置属性this.name name// 动态添加属性(不…...

ctfshow web sql注入 web242--web249

web242 into outfile 的使用 SELECT ... INTO OUTFILE file_name[CHARACTER SET charset_name][export_options]export_options:[{FIELDS | COLUMNS}[TERMINATED BY string]//分隔符[[OPTIONALLY] ENCLOSED BY char][ESCAPED BY char]][LINES[STARTING BY string][TERMINATED…...

发送微信消息和文件

参考&#xff1a;https://www.bilibili.com/video/BV1S84y1m7xd 安装&#xff1a; pip install PyOfficeRobotimport PyOfficeRobotPyOfficeRobot.chat.send_message(who"文件传输助手", message"你好&#xff0c;我是PyOfficeRobot&#xff0c;有什么可以帮助…...

数组-螺旋矩阵

M螺旋矩阵 ||&#xff08;leetcode59&#xff09; /*** param {number} n* return {number[][]}*/ var generateMatrix function(n) {const maxNum n * n;let curNum 1;const matrix new Array(n).fill(0).map(() > new Array(n).fill(0));let row 0,column 0;const d…...

GitStack详细配置与使用指南

1.引言 GitStack是一个功能强大的Git服务器管理工具,专为Windows环境设计。它提供了一个用户友好的Web界面,使得在Windows服务器上管理Git仓库变得简单高效。本文将详细介绍GitStack的安装、配置和使用方法,帮助您快速搭建自己的Git服务器。 2.GitStack安装 2.1 系统要求 Wi…...

LoadRunner-Virtual User Generator组件学习

重点知识 LR工具是拿C写的&#xff0c;所以它的脚本默认也是C&#xff0c;但是最终生成的脚本不止是C&#xff0c;它是支持C和Java语言的&#xff0c;这个大家要清楚&#xff0c;对本身懂代码的就很友好&#xff0c;你了解java&#xff0c;那就可以把脚本改成java&#xff0c;…...

NAT地址转换实验,实验超简单

实验拓扑 实验目的 将内网区域&#xff08;灰色区域&#xff09;的地址转换为172.16.1.0 实验过程 配置静态NAT&#xff08;基于接口的静态NAT&#xff09; R1配置 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname R1 [R1]un in en I…...

pip常用命令详解

pip 是 Python 的官方第三方包管理工具之一&#xff0c;其为 Python 包的安装与管理提供了极大的便利。本文将详细介绍 pip 的常见命令及其用法&#xff0c;帮助读者更好地利用这一强大的工具。 1. 安装 pip 在开始使用 pip 之前&#xff0c;确保您的系统中已经安装了 pip。p…...

vue3从入门到精通

CDN方式使用vue: 获取复杂数据类型&#xff1a; 使用结构复制语法去除vue前缀&#xff1a; 使用模块化开发&#xff1a; 需要安装插件live server&#xff1a; 需要访问网络地址&#xff1a; 简单数据类型ref的使用&#xff1a; 如何修改number reactive修改值不需要.value&…...

kubuadm 方式部署 k8s 集群

准备三台机器 主机名IP地址CPU/内存操作系统版本角色K8S版本Docker版本k8s231192.168.99.2312C4GCentos 7master1.23.1720.10.24k8s232192.168.99.2322C4GCentos 7woker1.23.1720.10.24k8s233192.168.99.2332C4GCentos 7woker1.23.1720.10.24 需要在K8S集群各节点上面安装dock…...

Android studio 打包低版本的Android项目报错

一、报错内容 Execution failed for task :app:packageRelease. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade> com.android.ide.common.signing.KeytoolException: Failed to read key key0 from store "…...

OpenOCD配置文件进阶指南:手把手教你定制STM32F0x的swj-dp.tcl脚本

OpenOCD深度定制&#xff1a;STM32F0x调试接口脚本开发实战 嵌入式开发中&#xff0c;调试工具的灵活配置往往决定着开发效率。对于STM32F0x系列芯片而言&#xff0c;OpenOCD作为开源调试工具链的核心组件&#xff0c;其配置文件的可定制性为开发者提供了极大的灵活性。本文将深…...

工业协议通信开发实战:lib60870开源库完全指南

工业协议通信开发实战&#xff1a;lib60870开源库完全指南 【免费下载链接】lib60870 Official repository for lib60870 an implementation of the IEC 60870-5-101/104 protocol 项目地址: https://gitcode.com/gh_mirrors/li/lib60870 在工业自动化领域&#xff0c;设…...

CST、Sspp与色散曲线的关联

CST cst Sspp 色散曲线在电磁仿真领域摸爬滚打过的工程师&#xff0c;对色散曲线这个磨人的小妖精应该都不陌生。今天咱们就来聊聊怎么用CST Studio Suite里的本征模求解器&#xff08;Eigenmode Solver&#xff09;提取波导结构的色散曲线&#xff0c;手把手带你从懵逼到上手…...

Python+Spire.Doc实战:5分钟搞定Word邮件合并批量生成邀请函(附完整代码)

PythonSpire.Doc实战&#xff1a;5分钟搞定Word邮件合并批量生成邀请函&#xff08;附完整代码&#xff09; 行政和市场人员经常面临批量发送个性化邀请函的挑战。传统手动修改不仅耗时费力&#xff0c;还容易出错。今天我们将用Python和Spire.Doc库&#xff0c;实现高效精准的…...

基于51单片机与74LS30的智能抢答器系统设计与实现

1. 智能抢答器系统概述 在各类知识竞赛、课堂互动和电视节目中&#xff0c;抢答器都是不可或缺的设备。传统机械式抢答器存在响应慢、易误触等问题&#xff0c;而基于51单片机的智能抢答器系统则完美解决了这些痛点。这个系统我做过不下十次&#xff0c;实测响应时间可以控制在…...

避坑指南:在华为云上为Python老项目配置代码检查与自动化构建(以Flask应用为例)

避坑指南&#xff1a;在华为云上为Python老项目配置代码检查与自动化构建&#xff08;以Flask应用为例&#xff09; 当我们需要将一个遗留的Python项目迁移到现代化开发流程时&#xff0c;往往会遇到各种"历史包袱"。本文将以一个从Python 2.7升级到3.7的Flask应用为…...

开源AI工具降本增效:Pixel Fashion Atelier助力小型工作室节省70%概念图外包成本

开源AI工具降本增效&#xff1a;Pixel Fashion Atelier助力小型工作室节省70%概念图外包成本 1. 项目概述 Pixel Fashion Atelier是一款基于Stable Diffusion与Anything-v5的开源图像生成工具&#xff0c;专为时尚设计领域打造。它通过创新的像素风格界面和优化的模型组合&am…...

Llama-3.2V-11B-cot效果展示:‘打字机式’CoT推演过程动态演示

Llama-3.2V-11B-cot效果展示&#xff1a;‘打字机式’CoT推演过程动态演示 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B多模态大模型开发的高性能视觉推理工具。这款工具针对双卡RTX 4090环境进行了深度优化&#xff0c;特别修复了视觉权重加载的关键Bug&#…...

payload缺了2个

soc和mcu收发验证中。其他block里面都有&#xff0c;只缺了2个。每个block里都是一样的rte的read和write那么问题在底软&#xff0c;不在我们ap/cp。如图&#xff0c;id6和9这里缺了。底软更新后有了&#xff1a;代码里面每个都一样的&#xff0c;问题不在这里&#xff1a;FUNC…...

TinyGPSPlusPlus:嵌入式NMEA解析库深度指南

1. TinyGPSPlusPlus&#xff1a;面向嵌入式系统的可定制化NMEA解析库深度解析1.1 库定位与工程价值TinyGPSPlusPlus 是一款专为资源受限嵌入式平台&#xff08;尤其是Arduino生态&#xff09;设计的轻量级、高可定制化的NMEA协议解析库。其核心工程价值在于&#xff1a;在极小内…...