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

代码随想录算法训练营 Day41 动态规划3

Day41 动态规划3

343. 整数拆分

思路

不知道如何拆分,才能使乘积最大化
有什么理论依据?

根据代码随想录
拆分使乘积最大化逻辑:应该尽可能拆成相同的数

根据题目,发现,拆分后的数可以继续拆分,因此可以用动规的思路

要点:

  1. dp数组含义 对i进行拆分,得到最大乘积为dp[i]
  2. 递推公式:
    如果拆成两个数:j * (i - j)
    如果拆成三个数以上:j * dp[i - j]
    递推公式可以将所有的情况都考虑,在比较取最大值就行;因此不知道上述逻辑也能写

最终代码:

class Solution:def integerBreak(self, n: int) -> int:dp = [0] * (n + 1)dp[0] = 0dp[1] = 0dp[2] = 1for i in range(3, n + 1):for j in range(1, i // 2 + 1):dp[i] = max(j * (i - j), j * dp[i - j], dp[i])return dp[n]

总结:
一开始不知道怎么拆最大,觉得会有一个特别的逻辑,但是实际写代码的时候,是一个暴力的方式将所有的情况都考虑,再比较取值的。

96.不同的二叉搜索树

思路

dp[i]的结果可以看作根节点为1到i的二叉搜索树种数之和
但是不同n,根节点为i得到的结果也不同
不知道怎么想递推公式

根据代码随想录
首先,根据样例观察规律
n = 3
1为根节点以及3为根节点,右子树的分布和n为2的布局是一样的
2为根节点,左右子树的分布根n为1一样

总共和 = 根节点为1的情况 + 根节点为2 + 根节点为3
根节点为1 = 左子树0个节点 * 右子树2个节点
根2 = 左子树1个节点 * 右子树1个节点
根3 = 左子树2个节点 * 右子树0个节点

n = 3可以根据0,1,2三种情况推导出来

j 为根节点,左边有j - 1个节点,右面有i - j个节点

最终代码:

class Solution:def numTrees(self, n: int) -> int:dp = [0] * (n + 1)dp[0] = 1for i in range(1, n + 1):for j in range(1, i + 1):dp[i] += dp[j - 1] * dp[i - j]return dp[n]

总结
这题有点难,没做过想不到怎么做

相关文章:

代码随想录算法训练营 Day41 动态规划3

Day41 动态规划3 343. 整数拆分 思路 不知道如何拆分,才能使乘积最大化 有什么理论依据? 根据代码随想录 拆分使乘积最大化逻辑:应该尽可能拆成相同的数 根据题目,发现,拆分后的数可以继续拆分,因此可…...

面试题:反推B+树高度

一个表5000w数据,一个数据行大小为1k,主键为long类型数据,假设指针大小为8B,页大小为16K,求B树的高度? B树的非叶子节点存储key和指针,叶子节点存储数据,对应表中的某些行。 叶子节点…...

瑞吉外卖实战学习--11、分类管理的列表分页查询

分类管理的列表分页查询 前言1、创建接口2、基于分页组件来实现的 前言 通过前端接口可以看到请求和传递的参数&#xff0c;本文章是基于mybatisPlus的分页插件来实现的 1、创建接口 GetMapping("/page")public R<Page> page(int page,int pageSize){ // …...

网络安全新视角:数据可视化的力量

在当今数字化时代&#xff0c;网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽&#xff0c;传统的网络安全防护措施已难以满足需求&#xff0c;急需新型的解决方案以增强网络防护能力。数据可视化技术&#xff0c;作为一种将复杂数据转换为图…...

Aurora8b10b(2)上板验证

文章目录 前言一、AXI_Stream数据产生模块二、上板效果总结 前言 上一篇内容我们已经详细介绍了基于aurora8b10b IP核的设计&#xff0c;本文将基于此进一步完善并且进行上板验证。 设计思路及代码思路参考FPGA奇哥系列网课 一、AXI_Stream数据产生模块 AXIS协议是非常简单的…...

每天五分钟计算机视觉:使用神经网络完成人脸的特征点检测

本文重点 我们上一节课程中学习了如何利用神经网络对图片中的对象进行定位,也就是通过输出四个参数值bx、by、bℎ和bw给出图片中对象的边界框。 本节课程我们学习特征点的检测,神经网络可以通过输出图片中对象的特征点的(x,y)坐标来实现对目标特征的识别,我们看几个例子。…...

表白墙项目(JAVA实现)

1、在html里 class使用. id使用# 2、记得引入响应依赖&#xff08;举例lombok&#xff09; 3、messageController package com.example.demo.demos.web; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; i…...

openGauss 高级分析函数支持

高级分析函数支持 可获得性 本特性自openGauss 1.1.0版本开始引入。 特性简介 无。 客户价值 我们提供窗口函数来进行数据高级分析处理。窗口函数将一个表中的数据进行预先分组&#xff0c;每一行属于一个特定的组&#xff0c;然后在这个组上进行一系列的关联分析计算。这…...

【Java面试题系列】基础篇

目录 基本常识标识符的命名规则八种基本数据类型的大小&#xff0c;以及他们的封装类3*0.10.3返回值是什么short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错?简述&&与&的区别&#xff1f;简述break与continue、return的区别&#xff1f;Arrays类的…...

Ubuntu 23.04 安装es

在Ubuntu 23.04上安装Elasticsearch的过程可能与之前版本类似&#xff0c;以下是基于最新稳定版Elasticsearch的一般安装步骤&#xff1a; 准备工作&#xff1a; 确保系统已更新至最新版本&#xff1a; sudo apt update && sudo apt upgrade安装Java Development Kit (…...

gradle 7.0 + 配置

Maven 镜像地址的设置 原来在项目根目录的 build.gradle 中进行设置&#xff0c;但是现在里面只有plugins。 工程的build.gradle的dependencies修改为plugins&#xff0c;替代了引用原来的Gradle版本。 // Top-level build file where you can add configuration options com…...

vue3的ref和reactive对比

一&#xff0c;ref 作用: 定义一个 ref 响应式的数据语法: const xxx ref(initValue) 用法 创建一个包含响应式数据的引用对象&#xff08;reference对象&#xff0c;简称ref对象&#xff09;。 JS中操作数据&#xff1a; xxx.value 模板中读取数据: 不需要.value&#xff0…...

是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异

如果只是想简单地体验AI的魅力&#xff0c;感受大模型的独特之处&#xff0c;或是玩一玩文字游戏&#xff0c;那么升级至ChatGPT 4.0可能并非必需。然而&#xff0c;若你期望将AI作为提升工作学习效率的得力助手&#xff0c;那么我强烈建议你升级到ChatGPT 4.0。 如果你不知道…...

C++刷题篇——04找等值元素

一、题目 二、解题思路 1、分割后放进二维数组 2、使用map&#xff0c;key为数值&#xff0c;value为其坐标 3、遍历二维数组元素&#xff0c;再在map中找该元素对应的value值&#xff08;二维数组形式&#xff09;&#xff0c;倘若value.size为1&#xff0c;那直接返回-1&…...

2024年最新服装erp软件排名!(建议收藏)

随着数字经济时代的到来&#xff0c;传统服装生产企业正在经历深刻的变革。如何实现产业数字化升级&#xff0c;是众多服装企业面临的共同课题。当前&#xff0c;服装类的企业管理软件已经成为企业实现智能化转型的关键。面对已经发生深刻改变的商业竞争环境&#xff0c;传统的…...

Radash一款JavaScript最新的实用工具库,Lodash的平替!

文章目录 Lodash 的痛点进入正题--Radash特点 举例几个常用的api 一说lodash应该大部分前端同学都知道吧&#xff0c;陪伴我们好多年的JavaScript工具库&#xff0c;但是自从 ES6 出现后就慢慢退出前端人的视线&#xff0c;能ES6写的代码绝对不会用Lodash&#xff0c;也不是完全…...

使用node爬取视频网站里《龙珠》m3u8视频

1. 找到视频播放网站 百度一下 龙珠视频播放 精挑细选一个可以播放的网站。 如&#xff1a;我在网上随便找了一个播放网站&#xff0c;可以直接在线播放 https://www.xxx.com/play/39999-1-7.html 这里不具体写视频地址了&#xff0c;大家可以自行搜索 2.分析网页DOM结…...

搜索与图论——Prim算法求最小生成树

在最小生成树问题里&#xff0c;正边和负边都没问题 朴素版prim算法 时间复杂度O(n^2) 生成树&#xff1a;每一次选中的t点&#xff0c;它和集合的距离对应的那条边&#xff0c;就是生成树的一条边 算法流程和dijkstra算法非常相似 #include<iostream> #include<cs…...

sqlmap基础知识

一、sqlmap简介 sqlmap是一个开源的渗透测试工具&#xff0c;可以自动检测和利用SQL注入漏洞以及接管数据库服务器的过程。 官网&#xff1a; sqlmap.org 核心功能 漏洞检测漏洞利用 学习关键点 基于sqlmap进行sql注入漏洞的检测&#xff0c;注入利用和攻击基于sqlmap进…...

读《C Primer Plus》

1、汇编语言是为特殊的中央处理单元设计的一系列内部指令&#xff0c;使用助记符来表示&#xff1b;不同的CPU系列使用不同的汇编语言。 2、C语言充分利用计算机优势&#xff0c;使它具有汇编语言才有的微调控能力&#xff0c;可移植性极好。 3、C语言可以访问硬件、操作内存…...

深入理解计算机系统 家庭作业 2.66

/* 前置条件:无符号整数右移不产生1 调用函数是为了可以查看整个过程,不影响结果. 思路是让x在右移的过程中,把最高位之前的位全部填满. 填满后的结果右移一位(即x的最高位变为0,其他为1),再异或x得到最高位 以此类推知道覆盖到32位. */ #include <stdio.h> #inclu…...

【服务端】node.js详细的配置

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

二、CentOS基础配置(1.网络与包管理)

文章目录 二、基础配置操作1、网络管理&#xff08;配置静态地址并进行ssh远程连接&#xff09;&#xff08;1.&#xff09;静态地址配置&#xff08;2.&#xff09;IP配置注释&#xff08;3.&#xff09;配置SSH远程连接 2、包管理&#xff08;1.&#xff09;yum软件包管理器1…...

Golang基础-5

Go语言基础 介绍 基础 切片 切片声明 切片初始化 切片基础操作 多维切片 介绍 本文介绍Go语言中切片(slice)(切片声明、切片初始化、切片基础操作、多维切片)等相关知识。 基础 切片 切片&#xff08;slice&#xff09;是对数组的一个连续片段的引用&#xff0c;切…...

Mysql数据库:故障分析与配置优化

目录 前言 一、Mysql逻辑架构图 二、Mysql单实例常见故障 1、无法通过套接字连接到本地MySQL服务器 2、用户rootlocalhost访问被拒绝 3、远程连接数据库时连接很慢 4、无法打开以MYI结尾的索引文件 5、超出最大连接错误数量限制 6、连接过多 7、配置文件/etc/my.cnf权…...

常见的图像分析算法

图像分析算法是计算机视觉领域中的一个重要分支&#xff0c;它通过使用预先训练的人工智能模型从图像中提取和分析视觉信息。这些算法可以应用于多种场景&#xff0c;如物体识别、图像分类、图像增强、缺陷检测等。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司…...

朵米3.5客服系统源码,附带系统搭建教程

朵米客服系统是一款全功能的客户服务解决方案&#xff0c;提供多渠道支持&#xff08;如在线聊天、邮件、电话等&#xff09;&#xff0c;帮助企业建立与客户的实时互动。该系统具有智能分流功能&#xff0c;可以快速将客户请求分配给适当的客服人员&#xff0c;提高工作效率。…...

Python 踩坑记

前言 回归 Python 栈&#xff0c;相较 Go 的 Coding&#xff0c;Python 确实偏向复杂&#xff0c;看似编码方便快捷的背后&#xff0c;是越来越庞杂的细枝末节&#xff0c;稍不注意就是偏差。如果项目只是“能跑就行”&#xff0c;那大概率遍地是坑。开启踩坑记&#xff5e; …...

搭建Spark单机版环境

在搭建Spark单机版环境的实战中&#xff0c;首先确保已经安装并配置好了JDK。然后&#xff0c;从群共享下载Spark安装包&#xff0c;并将其上传至目标主机的/opt目录。接着&#xff0c;解压Spark安装包至/usr/local目录&#xff0c;并配置Spark的环境变量&#xff0c;以确保系统…...

使用Flutter混淆技术保护应用隐私与数据安全

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…...

网站建设及域名/如何写软文推广产品

根据SqlServer2000 Analysis Services提供的帮助材料展开&#xff0c;略作说明并且根据各个函数的侧重点编写相应的MDX&#xff1b;这些成果主要源于我的老大浩哥&#xff0c;再次向他表示感谢。数组函数 函数 描述 SetToArray 将一个或多个集合转换为数组&#xff0c;以用于…...

网站做树状结构有什么作用/微信广告推广如何收费

1. 在托管程序的.config文件里&#xff0c;启用legacyCorruptedStateExceptionsPolicy这个属性&#xff0c;即简化的.config文件类似下面的文件&#xff1a; App.config: <?xml version"1.0"?> <configuration> <startup> <supportedRun…...

公司可以做多个网站吗/网站推广优化外链

凡有位运算的全加括号&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 二进制嘛&#xff0c;可以加速 a*2a<<1 a/2a>>1 2^b1<< b 可以判断一些东西 a&1->(a%21) a^1可以求出数的一个相邻数 等等等等 下面我会在做题目时记录一…...

招聘公司怎么做网站/国家职业技能培训学校

申明:本文来自b站springboot视频讲解笔记部分。b站链接&#xff1a;自动配置原理 本文主要讲三点&#xff1a;配置文件到底能写什么&#xff1f;怎么写&#xff1f;自动配置原理&#xff1b; 配置文件能配置的属性参照 1、自动配置原理&#xff1a; 1&#xff09;、SpringB…...

性咨询/百度推广seo优化

Safari浏览器&#xff1a; 1.safari执行history.go(-1);需要添加return false; Chrome浏览器 1.Chrome浏览器要预读图片&#xff0c;需要通过对图片的预加载。注&#xff1a;预加载前一定要将<img>加入<body> 1 /* 预加载图片 node-<img> func-回调函数 */ 2…...

家居企业网站建设如何/百度区域代理

刚看完urlretrieve函数&#xff0c;想要实战一下它的效果&#xff0c;于是找了国家地理杂志中国官网爬一下&#xff0c;网站http://www.nationalgeographic.com.cn/ 开发环境是Python2.7&&Pycharm 图片的src是这样的&#xff1a; 我们用正则&&BeautifulSoup匹配…...