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

【代码随想录】刷题笔记Day42

前言

  • 这两天机器狗终于搞定了,一个控制ROS大佬,一个计院编程大佬,竟然真把创新点这个弄出来了,牛牛牛牛(菜鸡我只能负责在旁边喊加油)。下午翘了自辩课来刷题,这次应该是元旦前最后一刷了,下午尽量刷多点吧(活就是2024再说嘿嘿)~

96. 不同的二叉搜索树 - 力扣(LeetCode)

  • 这一题最难的还是找规律,和整数拆分类似,DST定头节点后,左边是小的DST,右边是大的DST,所以可能数是左右可能数相乘
  • dp含义:dp[i] : 1到i为节点组成的二叉搜索树的个数为dp[i]
  • 递推公式:dp[i] += dp[j] * dp[i - j - 1](j从0开始)
  • 初始化:dp[0] = dp[1] = 1,从前往后遍历
  • class Solution {
    public:int numTrees(int n) {vector<int> dp(20);dp[0] = 1;dp[1] = 1;for(int i = 2; i < dp.size(); i++){for(int j = 0; j < i; j++){dp[i] += dp[j] * dp[i - j - 1];}}return dp[n];}
    };

 01背包问题理论基础(二维数组)

  • 问题定义
    • 有限个物体(都只有一个),有大小和价值,放进固定容量的背包里如何放是最大价值,暴力算的话时间复杂度为2^n(每件物品状态01),需要用动态规划,刚开始看有点懵,但是结合算法图解看很好懂
  • dp数组含义
    • dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少
  • 递推公式
    • dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);
  • 初始化
    • 第一行初始化从能装开始放value[0],第一列and其它全初始化为0
  • 遍历顺序
    • 两层for循环,按行先遍历物品再遍历背包(反过来其实也行)
    • →↓ 或 ↓→(前者好理解一些)
  • void test_2_wei_bag_problem1() {vector<int> weight = {1, 3, 4};vector<int> value = {15, 20, 30};int bagweight = 4;// 二维数组vector<vector<int>> dp(weight.size(), vector<int>(bagweight + 1, 0));// 初始化for (int j = weight[0]; j <= bagweight; j++) {dp[0][j] = value[0];}// weight数组的大小 就是物品个数for(int i = 1; i < weight.size(); i++) { // 遍历物品for(int j = 0; j <= bagweight; j++) { // 遍历背包容量if (j < weight[i]) dp[i][j] = dp[i - 1][j];else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);}}cout << dp[weight.size() - 1][bagweight] << endl;
    }int main() {test_2_wei_bag_problem1();
    }

 01背包问题理论基础(滚动数组)

  •  和二维数组比,一维只要更新一行就行,但是遍历顺序要从后往前(用没更新d[j])
  • dp数组含义
    • dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]
  • 递推公式
    • dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
  • 初始化
    • 全初始为0,保证用没放物品的值进行更新最大值
  • 遍历顺序
    • 倒序遍历:本质上还是一个对二维数组的遍历,并且右下角的值依赖上一层左上角的值,因此需要保证左边的值仍然是上一层的,从右向左覆盖
  • void test_1_wei_bag_problem() {vector<int> weight = {1, 3, 4};vector<int> value = {15, 20, 30};int bagWeight = 4;// 初始化vector<int> dp(bagWeight + 1, 0);for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}}cout << dp[bagWeight] << endl;
    }int main() {test_1_wei_bag_problem();
    }
    

后言

  • 正式开始放假!有什么事2024再说!晚上看晚会去咯!看能不能抽到遥遥领先! 

相关文章:

【代码随想录】刷题笔记Day42

前言 这两天机器狗终于搞定了&#xff0c;一个控制ROS大佬&#xff0c;一个计院编程大佬&#xff0c;竟然真把创新点这个弄出来了&#xff0c;牛牛牛牛&#xff08;菜鸡我只能负责在旁边喊加油&#xff09;。下午翘了自辩课来刷题&#xff0c;这次应该是元旦前最后一刷了&…...

数据库云平台新数科技完成B轮融资,打造全链路智能化数据库云平台

数据库云平台软件厂商「北京新数科技有限公司」&#xff08;以下简称「新数科技」&#xff09;已于2023年完成B1轮和B2轮融资&#xff0c;分别由渤海创富和彬复资本投资&#xff1b;义柏资本担任本轮融资独家财务顾问。 新数科技成立于2014年&#xff0c;当前产品矩阵包括数据库…...

【Linux 内核源码分析】Linux内核通知链机制

Linux内核通知链&#xff08;notifier chain&#xff09;是一种机制&#xff0c;用于实现内核中的事件通知和处理。它提供了一种灵活的方式&#xff0c;让不同的模块可以注册自己感兴趣的事件&#xff0c;并在事件发生时接收到通知。 通知链由一个或多个注册在其中的回调函数组…...

2023年度回顾:怿星科技的转型与创新

岁月不居&#xff0c;时节如流。随着2023年的落幕&#xff0c;怿星科技在这一年中不仅实现了自身的转型&#xff0c;还在技术创新、产品研发、行业合作和人才培养等方面取得了显著的成就。这一年&#xff0c;怿星科技正式完成了从服务型公司向产品型公司的战略转变&#xff0c;…...

STM32MP157D-DK1 Qt程序交叉编译与运行测试

上篇文章介绍了STM32MP157D-DK1开发板Qt镜像的构建&#xff0c;通过在Ubuntu中重新编译带有Qt功能的系统来实现。 本篇在上篇的基础上&#xff0c;继续搭建Qt的交叉编译环境&#xff0c;实现Qt程序在Ubuntu中编译&#xff0c;在STM32MP157板子中运行。 1 编译安装SDK 在上篇…...

Rancher 单节点 docker 部署备份与恢复

Rancher 单节点 docker 部署备份与恢复 1. 备份集群 获取 rancher server 容器名&#xff0c;本例为 angry_aryabhata docker ps | grep rancher/rancher6a27b8634c80 rancher/rancher:v2.5.14 xxx angry_aryabhata停止容器 docker stop angry_aryabhata创建备…...

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…...

pve虚拟机无法开机‘ha-manager set vm:101 --state started‘ failed: exit code 255

pve虚拟机无法开机&#xff0c;提示 ha-manager set vm:101 --state started failed: exit code 255 () Requesting HA start for VM 101 service vm:101 in error state, must be disabled and fixed first TASK ERROR: command ha-manager set vm:101 --state started fail…...

官宣!亚信安全TrustOne实力代言“中国新一代终端安全”

近日&#xff0c;IDC《中国新一代终端安全市场洞察&#xff0c;2023——安全防御的“最前线”》发布&#xff0c;正式定义了“中国新一代终端安全”的技术概念、技术演进和技术特点。该报告基于大量市场调研和数据分析&#xff0c;深入阐释了中国终端安全市场现状及面临的困局&…...

Text visualization : pipeline,wordle,phrase net,word tree

Text visualization&#xff08;文本可视化&#xff09;是一种将文本数据转换为可视形式的技术&#xff0c;以便更好地理解和分析文本内容。以下是可能会涉及的几个知识点&#xff1a; 1. Pipeline&#xff08;流程图&#xff09;&#xff1a;Pipeline是指将文本可视化的过程划…...

C# WPF上位机开发(报表导出)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于在工厂上班的小伙伴来说&#xff0c;导出生产数据、生成报表&#xff0c;这是很习以为常的一个工作。之前的文章中&#xff0c;虽然我们也介绍…...

CentOS7安装部署Zookeeper

文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1&#xff09;主机名2&#xff09;Hosts文件3&#xff09;关闭防火墙4&#xff09;JDK 安装部署 3.单机部署1&#xff09;下载和解压2&#xff09;配置文件3&…...

OceanBase入选Gartner®云数据库管理系统魔力象限“荣誉提及”

近日&#xff0c;全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》&#xff08;全球云数据库管理系统魔力象限&#xff09;。全自研分布式数据库 OceanBase 入选“荣誉提及”&#xff0c;2022 年推出的云数据库 OB Clo…...

Oracle 19C DBA管理常用命令

登入数据库主机&#xff0c;查看 CRS 资源状态&#xff1a; 集群资源启动完毕后&#xff0c;在任意一节点上利用crsctl查看集群状态。 查看&#xff1a;/u01/app/19c/grid/bin/crsctl status res -t 集群资源管理命令&#xff1a; 启动&#xff1a;/u01/app/19c/grid/bin/cr…...

BIO和NIO编程(待完善)

目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式&#xff1a;BIO&#xff0c;NIO&#xff0c;AIO BIO 同步阻塞模型&#xff0c;一个客户端连接对应一个处理线程 代码示例&#xff1a; Server端&#xff1a; public class BioServer {private static …...

基于RocketMQ实现分布式事务

前言 在上一篇文章Spring Boot自动装配原理以及实践我们完成了服务通用日志监控组件的开发&#xff0c;确保每个服务都可以基于一个注解实现业务功能的监控。 而本文我们尝试基于RocketMQ实现下单的分布式的事务。可能会有读者会有疑问&#xff0c;之前我们不是基于Seata完成了…...

TikTok社会学:短视频如何塑造社会认知?

TikTok&#xff0c;作为一款全球性的短视频平台&#xff0c;正在深刻地影响着用户的社会认知。在这个数字时代&#xff0c;短视频不仅仅是娱乐的载体&#xff0c;更是塑造和反映社会认知的一面镜子。本文将深入探讨TikTok是如何通过短视频影响社会认知&#xff0c;以及这种影响…...

小秋SLAM入门实战深度学习所有文章汇总

如何用python代码实现虚拟拖拽 MediaPipe Losses 损失函数 深度学习激活函数Activation Functions 【深度学习Regularization正则化】 深度学习: 数据扩充 (Data Augmentation) 【keras-yolo3】 【YOLO源码解读】 caffe源码解读系列 Python中的异常处理 精确率、精度&#xff…...

linux搭建git仓库

git安装与配置 # git安装 yum install -y git# git配置(以下为root用户下配置) # 添加git组 groupadd git# 添加账号、密码(账号zdtest可根据自己需求修改) useradd zdtest -g git passwd zdtest创建远程仓库(linux端) 创建个人文件夹 mkdir -p /home/data/zdtestcd /home/d…...

19. Mysql 循环语句

文章目录 概念循环语句while 循环语句repeat 循环语句loop 循环语句iterate 和 leave 语句 精选示例总结参考资料 概念 循环结构是编程中常见的控制结构&#xff0c;它允许我们重复执行一段代码&#xff0c;直到满足特定条件为止。 在 Mysql 中&#xff0c;常用来实现各种复杂…...

【qt】解决qt里编辑qss后失效问题(qt编码问题)

1、先创建qss文本stylesheet.qss 以按钮为例 QPushButton {background-color:rgb(240,255,255);color: rgb(0, 0, 2);border-style: outset;border-color: beige;border-radius: 10px; }/* hover按钮悬浮&#xff0c;鼠标悬浮在按钮上的状态&#xff0c;按钮颜色 */QPushButto…...

MySQL数据库高级SQL语句及存储过程

目录 一、高级SQL语句 &#xff08;一&#xff09;case语句 1.语法定义 2.示例 &#xff08;二&#xff09;空值(NULL) 和 无值( ) 1.区别 2.示例 &#xff08;1&#xff09;字符长度 &#xff08;2&#xff09;判断方法 ① 空值(NULL) ② 无值( ) &#xff08;3…...

使用idea构建父子类springboot项目教程

第一步创建一个父类java项目&#xff08;最外层java项目&#xff09; 1.点击File 然后点击new 再点击Project 2.点击Maven 配置Java版本 再点击next 3.GroupId&#xff1a;包结构&#xff0c;ArtifactId&#xff1a;项目名称&#xff0c;填写完&#xff0c;点击next 4.点击…...

TCP_可靠数据传输原理

引言 在网络通信中&#xff0c;TCP是确保数据可靠传输的关键协议。但在我们深入研究TCP拥塞控制技术之前&#xff0c;让我们先探索可靠数据传输的原理&#xff0c;特别是TCP头部中一些重要字段的作用。 网络层提供了点对点的通信服务&#xff0c;努力交付数据报&#xff0c;但…...

Python随机点名

python随机点名 # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0,9)) 执行以上代码输出结果为: 4 尝试一下 以上实例我们使用了 random 模块的 randint() 函数来生成随机数&#xff0c;你每次执行后都返回不同的数字&a…...

HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片

创建一个ArkTS卡片 在已有的应用工程中&#xff0c;创建ArkTS卡片&#xff0c;具体操作方式如下。 创建卡片。 根据实际业务场景&#xff0c;选择一个卡片模板。 在选择卡片的开发语言类型&#xff08;Language&#xff09;时&#xff0c;选择ArkTS选项&#xff0c;然后单…...

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》&#xff0c;前十名分别是片仔癀、同仁堂、贵州茅台、五粮液、中国银行、中华、黄山、农业银行、建设银行、汾酒。 榜单调研范围涵盖中国内地具有60年以上历史的为消费者提供产品或服务的品牌&#xff0c;综合考察品牌历史…...

MFC编程技巧与范例详解01

目录 1、MFC概述 &#xff08;1&#xff09;、MFC为什么不用C语言使用C &#xff08;2&#xff09;、MFC的开发模型文档-视图模型 &#xff08;3&#xff09;、一个完善的MFC程序应该包括 &#xff08;4&#xff09;、MFC常用的类 2、MFC的特性 &#xff08;1&#xff09…...

TPS5430正负电源模块

TPS5430正负电源模块 Chapter1 TPS5430正负电源模块一、芯片重要参数二、tps5430参考电路讲解以及PCB布局1.正压降压&#xff08;15V转12V&#xff09;2.正压降负压&#xff08;15V转-12V&#xff09; Chapter2 使用tps5430制作正负DC-DC降压电源&#xff0c;tps7a47和tps7a33制…...

【LeetCode 面试经典150题】45. Jump Game II 跳跃游戏II

45. Jump Game II 题目大意 You are given a 0-indexed array of integers nums of length n. You are initially positioned at nums[0]. Each element nums[i] represents the maximum length of a forward jump from index i. In other words, if you are at nums[i], yo…...

如何修改网站域名/品牌策划与推广

你会给电动车充电吗&#xff1f;说到电动车充电&#xff0c;可能大家都不以为然&#xff0c;不就是一个充电吗&#xff1f;有什么不会的&#xff0c;一头接电源&#xff0c;一头连电池&#xff0c;这有什么不会的。你有没有发现&#xff0c;自认为会给电动车充电的你&#xff0…...

软件搭建/宁波seo外包推广平台

class Solution:def maxSubArray(self, nums: [int]) -> int:res nums[0]res_max resfor num in nums[1:]:res num if res < 0 else res numres_max max(res_max, res)return res_max...

wordpress 文章图片居中/下载班级优化大师

是在网上找到你一个方法&#xff0c;具体还没试用&#xff0c;改天有时间试用一下恢复被误删文件的方法大多数Linux发行版都提供一个debugfs工具&#xff0c;可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前&#xff0c;还有一些工作要做。首先以只读方式重新挂载…...

提供网站哪家好/互联网平台推广

源代码下载地址&#xff1a;https://download.csdn.net/download/weixin_44893902/12839539 码云仓库地址&#xff1a; https://gitee.com/ynavc/WJX 演示地址&#xff1a;http://ynavc.gitee.io/wjx 演示连接&#xff1a;https://www.wulihub.com.cn/go/QowRNQ/index.html …...

广州做网站的网络公司排名/大数据精准营销获客

https://blog.csdn.net/weixin_43687900/article/details/104122629...

成都o2o网站建设/谷歌自然排名优化

往期精选● 架构师高并发高性能分布式教程(4000G)● 39阶段精品云计算大数据实战视频教程● 互联网技术干货视频教程大全【菜单为准】● 2017年8月最新Intellij IDEA全套视频教程● 程序员如何制作高质量的简历【视频简历】● 两套大型电商实战项目 ● 200本经典编程相关…...