力扣-152.乘積最大子數組

題目鏈接

152.乘積最大子數組

class Solution {public int maxProduct(int[] nums) {int[] dpMax = new int[nums.length]; //包括nums[i]的乘積最大值int[] dpMin = new int[nums.length]; //包括nums[i]的乘積最小值int res = nums[0];dpMax[0] = nums[0];dpMin[0] = nums[0];for (int i = 1; i < nums.length; i++) {if (nums[i] >= 0) {dpMax[i] = Math.max(dpMax[i - 1] * nums[i], nums[i]);dpMin[i] = Math.min(dpMin[i - 1] * nums[i], nums[i]);} else {dpMax[i] = Math.max(dpMin[i - 1] * nums[i], nums[i]);dpMin[i] = Math.min(dpMax[i - 1] * nums[i], nums[i]);}res = Math.max(res, dpMax[i]);}return res;}
}

小結:因為可能有負數出現,可能讓最小的變成最大的,需要額外記錄當前最小值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90314.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90314.shtml

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

相關文章

HTTP/1.0、HTTP/1.1 和 HTTP/2.0 主要區別

一句話總結 HTTP/1.0: 短連接&#xff0c;每次請求都需要建立一個新的 TCP 連接&#xff0c;性能較差。HTTP/1.1: 長連接&#xff0c;默認開啟 Keep-Alive&#xff0c;連接可復用&#xff0c;解決了 1.0 的大部分問題&#xff0c;是目前使用最廣泛的版本。HTTP/2.0: 二進制、多…

Navicat 17.3 正式發布 | 現已支持達夢、金倉和 IvorySQL 數據庫

&#x1f680;&#x1f680;&#x1f680; Navicat 很高興地宣布&#xff1a;Navicat 17.3 版本正式發布。此次更新包含多項突破性功能&#xff0c;包括新增對達夢、金倉和 IvorySQL 等數據庫的支持&#xff0c;全面強化 AI 功能并新增阿里通義千問等 AI 大模型&#xff0c;同…

前端性能新紀元:Rust + WebAssembly 如何在瀏覽器中實現10倍性能提升(以視頻處理為例)

前端性能新紀元&#xff1a;Rust WebAssembly 如何在瀏覽器中實現10倍性能提升&#xff08;以視頻處理為例&#xff09; JavaScript&#xff0c;作為 Web 開發的基石&#xff0c;是動態的、靈活的&#xff0c;但在性能上&#xff0c;它也存在著天生的“軟肋”。對于那些計算密…

Web前端:JavaScript find()函數內判斷

&#x1f3af; find是什么&#xff1f;find() 是 JavaScript 數組&#xff08;Array&#xff09;提供的一個內置方法&#xff0c;用于在數組中查找第一個滿足條件的元素。簡單來說&#xff1a;它像偵探一樣遍歷數組&#xff0c;找到第一個符合條件的成員就返回它。?? 核心作用…

MySQL詳解三

MySQL詳解三事務ACID特性原子性一致性隔離性持久性事務的隔離級別讀未提交(Read Uncommitted)讀已提交&#xff08;Read Committed&#xff09;可重復讀&#xff08;Repeatable Read&#xff09;串行化&#xff08;serializable&#xff09;MVCC聚集索引的隱藏列read view鎖全局…

ABQ-LLM:用于大語言模型的任意比特量化推理加速

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" ABQ-LLM&#xff1a;用于大語言模型的任意比特量化推理加速 摘要 大語言模型&#xff08;LLMs&#xff09;在自然語言處理任務中取得了革命性的進展。然而&#xff0c;其實際應用受到巨大的內存與計算開銷的限制…

kafka的shell操作

Kafka 提供了豐富的 shell 命令工具&#xff0c;位于 Kafka 安裝目錄的 bin/ 目錄下&#xff08;Windows 系統為 bin/windows/&#xff09;。這些命令用于管理主題、生產者、消費者、分區等核心組件。以下是常用的 Kafka shell 操作大全&#xff1a;一、主題&#xff08;Topic&…

client-go: k8s選主

快速上手 下面這個代碼就是一個選主的大概邏輯 package mainimport ("context""flag""fmt"_ "net/http/pprof""os""path/filepath""time""golang.org/x/exp/rand"v1 "k8s.io/api/core/v…

為什么Java的String不可變?

為什么Java的String不可變&#xff1f; 場景&#xff1a; 你在開發多線程用戶系統時&#xff0c;發現用戶密碼作為String傳遞后&#xff0c;竟被其他線程修改。這種安全隱患源于對String可變性的誤解。Java將String設計為不可變類&#xff0c;正是為了解決這類核心問題。 1??…

在Ubuntu上使用QEMU學習RISC-V程序(1)起步第一個程序

文章目錄一、 引言二、 環境準備三、編寫簡單的RISC-V程序四、 編譯步驟詳解五、使用QEMU運行程序六、程序詳解七、退出QEMU八、總結附錄&#xff1a;QEMU中通過UTRA顯示字符工作原理1、內存映射I/O原理2、add.s程序工作流程3、關鍵指令解析4、QEMU模擬的UART控制器5、為什么不…

R擬合 | 一個分布能看到三個峰,怎么擬合出這三個正態分布的參數? | 高斯混合模型 與 EM算法

1. 效果已知數據符合上圖分布&#xff0c;怎么求下圖的三個分布的參數mu, sigma&#xff0c;及每個分布的權重 lambda&#xff1f; 2. 代碼: 高斯混合模型&#xff08;Gaussian Mixture Model&#xff0c;簡稱GMM&#xff09; library(mixtools) set.seed(123) # 確保結果可重復…

Excel自動分列開票工具推薦

軟件介紹 本文介紹一款基于Excel VBA開發的自動分列開票工具&#xff0c;可高效處理客戶對賬單并生成符合要求的發票清單。 軟件功能概述 該工具能夠將客戶對賬單按照訂單號自動拆分為獨立文件&#xff0c;并生成可直接導入發票清單系統的標準化格式。 軟件特點 這是一款體…

【自用】JavaSE--Stream流

概述獲取Stream流集合的stream流集合名.stream( );collection集合List集合與Set集合都屬于Collection集合&#xff0c;因此可以直接調用stream方法獲取stream流&#xff0c;示例如下結果>map集合map集合存在鍵值對&#xff0c;因此無法使用該方法直接獲取stream流&#xff0…

【Elasticsearch】快照與恢復功能詳解

《Elasticsearch 集群》系列&#xff0c;共包含以下文章&#xff1a; 1?? 冷熱集群架構2?? 合適的鍋炒合適的菜&#xff1a;性能與成本平衡原理公式解析3?? ILM&#xff08;Index Lifecycle Management&#xff09;策略詳解4?? Elasticsearch 跨機房部署5?? 快照與恢…

技嘉z370主板開啟vtx

技嘉z370vtx應該默認就是開啟狀態&#xff0c;雖然主板開啟的vtx但是系統默認設置會導致vtx不能使用 1. 關閉hyper-V,Windows虛擬機監控程序平臺,虛擬機平臺 控制面板->程序->啟用或關閉windows功能 2.以管理員身份運行CMD bcdedit /set hypervisorlaunchtype off 3.…

Springmvc的自動解管理

中央轉發器&#xff08;DispatcherServlet&#xff09;控制器視圖解析器靜態資源訪問消息轉換器格式化靜態資源管理一、中央轉發器Xml無需配置<servlet><servlet-name>chapter2</servlet-name><servlet-class>org.springframework.web.servlet.Dispatc…

C#_定時器_解析

問題一:這里加lock是啥意思?它的原理是, 為什么可以鎖住? private readonly Timer _timer;/// <summary>/// 構造函數中初始化定時器/// </summary>public FtpTransferService(){// 初始化定時器_timer new Timer(_intervalMinutes * 60 * 1000);_timer.Elapsed…

Trae開發uni-app+Vue3+TS項目飄紅踩坑

前情 Trae IDE上線后我是第一時間去使用體驗的&#xff0c;但是因為一直排隊問題不得轉戰Cursor&#xff0c;等到Trae出付費模式的時候&#xff0c;我已經辦了Cursor的會員&#xff0c;本來是想等會員過期了再轉戰Trae的&#xff0c;但是最近Cursor開始做妖了 網上有一堆怎么…

低代碼中的統計模型是什么?有什么作用?

低代碼開發平臺中的統計模型是指通過可視化配置、拖拽操作或少量代碼即可應用的數據分析工具&#xff0c;旨在幫助技術人員及非技術人員快速實現數據描述、趨勢預測和業務決策。其核心價值在于降低數據分析門檻&#xff0c;使業務人員無需深入掌握統計原理或編程技能&#xff0…

Linux 下在線安裝啟動VNC

描述 Linux中的VNC就類似于Windows中的遠程桌面系統 本文只記錄在Cent OS 7的系統下在線安裝VNC。 安裝VNC 1、安裝VNC yum install tigervnc-server2、配置VNC的密碼 為用戶設置 VNC 密碼&#xff08;首次運行會提示輸入&#xff0c;也可以提前輸入&#xff09; vncpasswd密碼…