刷leetcode hot100--动态规划3.12

news/2025/3/13 20:03:44/

第一题乘积max子数组[1h++]

emmmm感觉看不懂题解

线性dp【计划学一下acwing,挨个做一下】

线性动态规划 相似题解析 最长上升子序列 最大上升子序列和 最大连续子段和 乘积最大子数组_哔哩哔哩_bilibili

比较奇怪的就是有正负数和0,如何处理?

核心是维护一个max和min

//全是整数【负数,0,正数】,乘积max,连续子数组

        //暴力求解??起始i,终止j,遍历

        //dp[n]以nums[n]结束的连续子数组的max乘积

        //初始化dp[n] = nums[n]

        //有负数怎么办??,或者说其实是整数的话,只用关注0,负数

        //负数和0如何处理

        //负数和0分开处理,负数看奇数偶数,0分左右两边/就是0

        //看了评论区,两个能合起来:负数偶数【不用管,遍历取max】,

        //首先不用管0,因为int a = 1,int max = nums[0],如果遇到0,a = 1即可

        //负数:负数奇数【若无0,则为左边数组,右边数组取max】,有0,分成两半,看左边负数个数,右边负数个数,依旧是无0的操作

        //一个很厉害的方法是从左向右和从右向左遍历一次,负数??取max

        //dp想法是维护min和max

题解:

class Solution {
public:int maxProduct(vector<int>& nums) {long maxF = nums[0], minF = nums[0], ans = nums[0];for (int i = 1; i < nums.size(); ++i) {long mx = maxF, mn = minF;maxF = max(mx * nums[i], max((long)nums[i], mn * nums[i]));minF = min(mn * nums[i], min((long)nums[i], mx * nums[i]));if(minF<INT_MIN) {minF=nums[i];}ans = max(maxF, ans);}return ans;}
};


http://www.ppmy.cn/news/1578870.html

相关文章

更新vscode ,将c++11更新到c++20

要在CentOS系统中安装最新版本的GCC&#xff0c;你可以使用SCL&#xff08;Software Collections&#xff09;仓库&#xff0c;它提供了开发工具的最新版本。以下是安装步骤&#xff1a; 1、 添加SCL仓库&#xff1a; 首先&#xff0c;添加CentOS的SCL仓库&#xff0c;该仓库…

K8S学习之基础二十:k8s的coredns

K8S的coredns DNS&#xff08;DOMAIN NAME SYSTEM&#xff09;&#xff0c;就是域名系统COREDNS是DNS的一种&#xff0c;为集群提供服务发现功能&#xff0c;用来解析集群中生成的服务这里使用dig镜像来测试域名服务dig是继承了nslookup命令的一个镜像&#xff0c;上传到harbor…

STM32 单片机常见的 8 种输入输出模式

STM32 单片机常见的 8 种输入输出模式 文章目录 STM32 单片机常见的 8 种输入输出模式1. 浮空输入模式 (GPIO_Mode_IN_FLOATING)介绍使用场景示例代码 2. 上拉输入模式 (GPIO_Mode_IPU)介绍使用场景示例代码 3. 下拉输入模式 (GPIO_Mode_IPD)介绍使用场景示例代码 4. 模拟输入模…

前端 | 向后端传数据,判断问题所在的调试过程

目录 ​编辑 1. 在 vue 文件中&#xff0c;在调用函数之前 先打印传入的数据 2. 在 js 文件中&#xff0c;打印接收到的数据 3. 在浏览器 Network 面板查看请求数据 4. 在 server.js 中查看请求数据 5. 确保 JSON 格式正确 知识点&#xff1a;JSON.stringify(req.body, …

MAC查看自己真实IP命令

在 macOS 上&#xff0c;你可以通过以下步骤查看自己的真实 IP 地址&#xff1a; 1. 使用终端命令 打开“终端”应用程序&#xff08;可以在“应用程序” -> “实用工具”中找到&#xff09;&#xff0c;然后输入以下命令&#xff1a; ifconfig | grep "inet "…

【AI大模型智能应用】Deepseek生成测试用例

在软件开发过程中&#xff0c;测试用例的设计和编写是确保软件质量的关键。 然而&#xff0c;软件系统的复杂性不断增加&#xff0c;手动编写测试用例的工作量变得异常庞大&#xff0c;且容易出错。 DeepSeek基于人工智能和机器学习&#xff0c;它能够依据软件的需求和设计文…

2025年03月11日Github流行趋势

项目名称&#xff1a;pydoll 项目地址url&#xff1a;https://github.com/thalissonvs/pydoll项目语言&#xff1a;Python历史star数&#xff1a;1372今日star数&#xff1a;148项目维护者&#xff1a;thalissonvs, apps/github-actions, LucasAlvws, CaioWzy, Patolox项目简介…

整理:开启新征程!四篇文章助力 AI,告别 “3D理解困难户”

近年来&#xff0c;人工智能的发展让大语言模型&#xff08;MLLM&#xff09;变得越来越强大&#xff0c;它们可以理解和处理文字、图片、视频等多种信息&#xff0c;在很多领域都有很好的应用。然而&#xff0c;当这些模型需要理解 3D&#xff08;立体&#xff09;场景 时&…