刷leetcode hot100--動態規劃3.12

第一題乘積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.pswp.cn/diannao/73113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73113.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pytortch深度學習網絡框架庫 torch.no_grad方法 核心原理與使用場景

在PyTorch中&#xff0c;with torch.no_grad() 是一個用于臨時禁用自動梯度計算的上下文管理器。它通過關閉計算圖的構建和梯度跟蹤&#xff0c;優化內存使用和計算效率&#xff0c;尤其適用于不需要反向傳播的場景。以下是其核心含義、作用及使用場景的詳細說明&#xff1a; 一…

postgresql 數據庫使用

目錄 索引 查看索引 創建 刪除索引 修改數據庫時區 索引 查看索引 select * from pg_indexes where tablenamet_table_data; 或者 select * from pg_statio_all_indexes where relnamet_table_data; 創建 CREATE INDEX ix_table_data_time ON t_table_data (id, crea…

為什么大模型網站使用 SSE 而不是 WebSocket?

在大模型網站&#xff08;如 ChatGPT、Claude、Gemini 等&#xff09;中&#xff0c;前端通常使用 EventSource&#xff08;Server-Sent Events, SSE&#xff09; 來與后端對接&#xff0c;而不是 WebSocket。這是因為 SSE 更適合類似流式文本生成的場景。下面我們詳細對比 SSE…

TDengine 數據對接 EXCEL

簡介 通過配置使用 ODBC 連接器&#xff0c;Excel 可以快速訪問 TDengine 的數據。用戶可以將標簽數據、原始時序數據或按時間聚合后的時序數據從 TDengine 導入到 Excel&#xff0c;用以制作報表整個過程不需要任何代碼編寫過程。 前置條件 準備以下環境&#xff1a; TDen…

【具身相關】legged_gym, isaacgym、rsl_rl關系梳理

【legged_gym】legged_gym, isaacgym代碼邏輯梳理 總體關系IsaacGymlegged_gymrsl_rl三者的關系 legged_gym代碼庫介紹環境模塊env 總體關系 IsaacGym Isaac Gym 是 NVIDIA 開發的一個高性能物理仿真平臺&#xff0c;專門用于強化學習和機器人控制任務。它基于 NVIDIA 的 Phy…

【每日學點HarmonyOS Next知識】狀態變量、動畫UI殘留、Tab控件顯示、ob前綴問題、文字背景拉伸

1、HarmonyOS 怎么用一個變量觀察其他很多個變量的變化&#xff1f; 有一個提交按鈕的顏色&#xff0c;需要很多個值非空才變為紅色&#xff0c;否則變為灰色&#xff0c;可不可以用一個變量統一觀察這很多個值&#xff0c;去判斷按鈕該顯示什么顏色&#xff0c;比如Button().…

全鏈條自研可控|江波龍汽車存儲“雙輪驅動”體系亮相MemoryS 2025

3月12日&#xff0c;MemoryS 2025在深圳盛大開幕&#xff0c;匯聚了存儲行業的頂尖專家、企業領袖以及技術先鋒&#xff0c;共同探討存儲技術的未來發展方向及其在商業領域的創新應用。江波龍董事長、總經理蔡華波先生受邀出席&#xff0c;并發表了題為《存儲商業綜合創新》的主…

基于Python+SQLite實現校園信息化統計平臺

一、項目基本情況 概述 本項目以清華大學為預期用戶&#xff0c;作為校內信息化統計平臺進行服務&#xff0c;建立網頁端和移動端校內信息化統計平臺&#xff0c;基于Project_1的需求實現。 本項目能夠滿足校內學生團體的幾類統計需求&#xff0c;如活動報名、實驗室招募、多…

(每日一題) 力扣 2418. 按身高排序

文章目錄 &#x1f984; LeetCode 2418.按身高排序&#xff5c;雙解法對比與下標排序的精妙設計&#x1f4dd; 問題描述&#x1f4a1; 解法思路分析方法一&#xff1a;Pair打包法&#xff08;直接排序&#xff09;方法二&#xff1a;下標排序法&#xff08;當前實現&#xff09…

計算機畢業設計:ktv點歌系統

ktv點歌系統mysql數據庫創建語句ktv點歌系統oracle數據庫創建語句ktv點歌系統sqlserver數據庫創建語句ktv點歌系統springspringMVChibernate框架對象(javaBean,pojo)設計ktv點歌系統springspringMVCmybatis框架對象(javaBean,pojo)設計 ktv點歌系統mysql數據庫版本源碼&#xf…

Deepin通過二進制方式升級部署高版本 Docker

一、背景&#xff1a; 在Deepin系統中通過二進制方式升級部署高版本 Docker&#xff0c;下面將詳細介紹二進制方式升級部署高版本 Docker 的具體步驟。 二、操作步驟 1.根據需求下載二進制文件&#xff0c;下載地址如下&#xff1a; https://mirrors.tuna.tsinghua.e…

2025年Draw.io最新版本下載安裝教程,附詳細圖文

2025年Draw.io最新版本下載安裝教程&#xff0c;附詳細圖文 大家好&#xff0c;今天給大家介紹一款非常實用的流程圖繪制軟件——Draw.io。不管你是平時需要設計流程圖、繪制思維導圖&#xff0c;還是制作架構圖&#xff0c;甚至是簡單的草圖&#xff0c;它都能幫你輕松搞定。…

道路運輸安全員考試備考:循序漸進,穩步提升

備考道路運輸安全員考試是一個循序漸進的過程&#xff0c;需要穩步提升自己的知識和能力。? 第一階段是基礎鞏固階段。這一階段要以教材為核心&#xff0c;全面系統地學習各個知識板塊。從道路運輸法規開始&#xff0c;逐章逐節地學習&#xff0c;理解每一條法規的含義和適用…

滑動窗口(2)——哈希表輔助的滑動窗口算法

歡迎來到博主的專欄&#xff1a;算法解析 博主ID&#xff1a;代碼小豪 文章目錄 leetcode438——找到字符串中所有字母異位詞題目解析算法原理題解代碼 leetcode30——串聯所有單詞的子串題目解析算法原理題解代碼 leetcode438——找到字符串中所有字母異位詞 題目解析 異位詞…

Deepseek -> 如何寫 Dockerfile

嗯&#xff0c;用戶問的是如何制作Dockerfile&#xff0c;我得先理清楚步驟。首先&#xff0c;Dockerfile的基礎結構是什么&#xff1f;應該從基礎鏡像開始&#xff0c;對吧&#xff1f;比如FROM指令。然后可能需要設置工作目錄&#xff0c;用WORKDIR。接著復制文件&#xff0c…

RabbitMQ重復消費如何解決

消息重復消費的原因 生產者重試&#xff1a;網絡波動導致生產者未收到 Broker 確認&#xff0c;重復發送消息。消費者失敗&#xff1a;消費者處理消息后未發送 ACK&#xff0c;消息重新入隊。集群故障轉移&#xff1a;主節點宕機&#xff0c;未確認消息被重新投遞。 解決方案 …

Node-RED基礎1

目錄 一、概述二、安裝三、基操四、通訊五、數據六、節點七、 應用END 一、概述 Rode-Red是什么&#xff1f; 基于Node.js的物聯網開發工具&#xff0c;做API、通訊&#xff1b;提供了一些基本的監控功能&#xff0c;可在編輯器界面中查看節點的運行狀態、消息流量等信息。通…

java登神之階之順序表

一、了解List接口 在Java中&#xff0c;List接口是一個非常重要的集合框架接口&#xff0c;它繼承自Collection接口&#xff08;Collection接口繼承Iterable接口&#xff09;。List接口定義了一個有序集合&#xff0c;允許我們存儲元素集合。并且可以根據元素的索引來訪問集合中…

redux_舊版本

reduxjs/toolkit&#xff08;RTK&#xff09;是 Redux 官方團隊推出的一個工具集&#xff0c;旨在簡化 Redux 的使用和配置。它于 2019 年 10 月 正式發布&#xff0c;此文章記錄一下redux的舊版本如何使用&#xff0c;以及引入等等。 文件目錄如下&#xff1a; 步驟 安裝依…

MySQL:SQL優化實際案例解析(持續更新)

文章目錄 一、MySQL&#xff1a;SQL優化1、時間格式化問題&#xff08;字符串&#xff09;2、in/inner join的問題 一、MySQL&#xff1a;SQL優化 1、時間格式化問題&#xff08;字符串&#xff09; -- 優化前 SELECT * FROM test_table WHERE date_format( begin_time, %Y-%…