Javascript每天一道算法題(十三)——最大子數組和_中等

文章目錄

  • `動態規劃題三個重要步驟`(了解思路)
  • 1、問題
  • 2、示例
  • 3、解決方法
    • (1)方法1——動態規劃
  • 總結


動態規劃題三個重要步驟(了解思路)

(1)定義數組元素的含義
用一個數組來保存歷史數組。
(2)找出數組元素直接的關系式(狀態轉移方程)
動態規劃的題,就是把一個規模比較大的問題分成幾個規模比較小的問題,然后由小的問題推導出大的問題。
常見情況下,如上題中nums[start] 和nums[item] 肯定存在某種關系。我們可以從最后一步、倒數第二步等方面入手分析。
(3)找出初始值
動態規劃類似于數學歸納法,我們需要知道初始值,才能不斷地推下去。如該題的-2開始。


1、問題

給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
子數組 是數組中的一個連續部分。

2、示例

示例 1:
輸入:nums = [-2,1,-3,4,-1,2,1,-5,4]
輸出:6
解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 。
示例 2:
輸入:nums = [1]
輸出:1
示例 3:
輸入:nums = [5,4,-1,7,8]
輸出:23

3、解決方法

(1)方法1——動態規劃

// 說實話,第一次用動態規劃的方法寫上面代碼有點懵,直接debugger看看
// [-2,1-3]中最大的是1,那么就不會加上-2和-3這兩個值,返回的maxArray就是1
// [-2,1-3,4]中最大的是4,而4-3+1大于1,但是比4本身小,返回的maxArray就是4,而不是4-3+1 =2
// [-2,1-3,4,-1]中最大的是4,而4+ -1 小于4,返回的maxArray就還是4
// [-2,1-3,4,-1,2]中最大的是4,而4-1+2大于4,返回的maxArray就是5
// [-2,1-3,4,-1,2,1]中最大的是4,而4-1+2+1大于5,返回的maxArray就是6
// 后面的就都不比當前的值大,就直接返回了6,這么看是不是清晰了點

let nums =  [-2,1,-3,4,-1,2,1,-5,4]
var maxSubArray = function(nums) {// 1-1: 定義一個用來維護當前遍歷數據的值let start = 0;// 1-2: 要返回的和最大數組值let maxArray = nums[0]nums.forEach(item => {// 2:將起始值和當前值累加與當前值對比獲取最大值給起始值start = Math.max(start+item, item)// 3: 將起始值和最大值進行對比maxArray = Math.max(start, maxArray)// 4:遍歷后獲取n和n+1相加后都是最大的那個值});// 5:返回數據console.log('maxArray', maxArray);
};
maxSubArray(nums);

總結

難度:中等(以前是簡單的難度)
重點:了解動態規劃的解題思路。

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

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

相關文章

2020年06月 Scratch(三級)真題解析#中國電子學會#全國青少年軟件編程等級考試

Scratch等級考試(1~4級)全部真題?點這里 一、單選題(共25題,每題2分,共50分) 第1題 執行以下腳本后舞臺上的角色將 ? A:先克隆自身,克隆體出現后被刪除。 B:先克隆自身,克隆體出現后刪除本體。 C:克隆出自身后本體與克隆體同時被刪除。 D:克隆出自身后本體與克…

docker常用命令, 鏡像版本的導入、導出并加載,打包鏡像的命令

文章目錄 docker常用命令:打鏡像包:鏡像版本的導入、導出并加載 docker常用命令: 打鏡像包: ? docker build -t calc:20230630 /home/apps/calc/docker/ 刪除某個鏡像的版本,allen_mysql的5.7版本 docker rmi all…

Redis深入理解-內核請求處理流程、數據傳輸協議

Redis 內核級請求處理流程 Redis Server 其實就是 Linux 服務器中的一個進程 主要還是下圖的流程 應用先和 server 端建立 TCP 連接建立連接之后,server 端就會有一個與該客戶端通信的 socket,客戶端的讀寫請求發送到服務端的 socket那么通過 IO 多路…

分組背包問題學習筆記 AcWing 9. 分組背包問題

原題 有 N� 組物品和一個容量是 V� 的背包。 每組物品有若干個,同一組內的物品最多只能選一個。 每件物品的體積是 vij���,價值是 wij���,其中 …

PC8233(CC/CV控制)高耐壓輸入5V/3.4A同步降壓電路內建補償帶恒流恒壓輸出

概述 PC8233(替代CX8853)是一款同步降壓調節器,輸出電流高達3.4A,操作范圍從8V到32V的寬電源電壓。內部補償要求最低數量現成的標準外部組件。PC8233在CC(恒定輸出電流)模式或CV(恒定輸出電壓)模式&#x…

【前端】前端監控?埋點

文章目錄 前端監控分為三個方面前端監控流程異常監控常見的錯誤捕獲方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 錯誤Vue 錯誤React 錯誤 性能監控用戶行為監控常見的埋點方案來源 前端監控分為三個方面 異常監控(監控前端頁面…

基于element-ui后臺模板,日常嘮嗑

后面會補充github地址 文章目錄 目錄 文章目錄 案例說明 1.引入庫 2.創建布局組件 3.創建布局組件 4.菜單效果展示 5.創建頂部組件 5.創建頂部面包屑組件 6.創建內容區域組件 7.效果總覽 7.布丁(實現一些小細節) 前言一、pandas是什么?二、使…

CentOS7中升級OpenSSL詳細教程

文章目錄 一. 引言二. 升級前的準備1.備份現有配置2. 檢查系統版本3. 安裝依賴 三. OpenSSL安裝四. 驗證 一. 引言 OpenSSL: 是用于保護數據安全的重要工具。它能提供加密,解密等多項功能。 然而,隨著技術的發展和新的安全漏洞的出現,使用最…

管理類聯考——英語二——備考 100 句涵蓋所有詞匯

全中 在海里的這個地區,熊貓們喜歡就著蘇打碗豆喝茶。而大洋州的民兵則喜歡經過半島,帶著編劇本的公式上餐廳去。附件的電影院里有額外的歌劇和香蕉,這一時代的斑馬們被外面的天線所吸引。實驗室里的蟹想用它的肋骨去戳四肢象燈炮的小羊。但…

千夢網創:創業,一場游戲一場夢

創業這件事就好比一場養成類游戲,而我們自己就是游戲主角。 這個游戲有一個特殊之處在于:SSS級裝備有穿戴等級設定,就算你氪重金買到了一把神器,自身閱歷不夠也根本無法發揮它的強大威力而只能當個裝飾。 這就要求我們真正沉浸在…

催單開發信怎么寫?外貿人如何寫催單郵件?

年末催單開發信編寫技巧?最有效的催單話術有哪些? 催單開發信成為了企業間日常溝通的重要一環。這些信件不僅有助于促進業務發展,還可加強供應鏈的協調,確保貨物及時送達。蜂郵EDM將介紹如何寫一封出色的催單開發信,以…

ubuntu20.04安裝多版本cuda,切換版本

1. 安裝cuda toolkit: 下載網站 https://developer.nvidia.com/cuda-11.3.0-download-archive 選擇版本,這里選擇11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run給cuda權限: chmod x…

Linux加強篇001-部署Linux系統

目錄 一、前言 1.1準備工具 1.2安裝配置VM虛擬機 1.3安裝軟件 1.4系統初始化進程 1.5重置root密碼 二、鞏固練習 1.為什么建議讀者在下載系統文件后先進行校驗而不是直接安裝呢? 2.使用虛擬機安裝Linux系統時,為什么要先…

科技與藝術如何交織出“理想之家”?三星電視給出家電行業最優解答

作者 | 曾響鈴 文 | 響鈴說 理想的家,是什么樣子? 關于這個問題,社交媒體上有形形色色的答案。很多人的夢中情屋是原木風、奶油色,點綴著綠意盎然的植物;還有一些人的Dream house是用全屋智能將科技感拉滿,再配上打…

OpenStack云計算平臺-計算服務

目錄 一、計算服務概覽 二、安裝并配置控制節點 1、先決條件 2、安全并配置組件 3、完成安裝 三、安裝和配置計算節點 1、安全并配置組件 2、完成安裝 四、驗證操作 一、計算服務概覽 使用OpenStack計算服務來托管和管理云計算系統。OpenStack計算服務是基礎設施即服務…

2024東北師范大學計算機考研分析

24計算機考研|上岸指南 東北師范大學 信息科學與技術學院位于長春凈月國家高新技術產業開發區,毗鄰風光秀美的凈月潭國家森林公園。 信息科學與技術學院由原“計算機科學與信息技術學院”和“信息與軟件工程學院”于2017年根據學校事業發展需要整合形成。學院設有…

全球三大網絡安全威脅

網絡安全IP數據云 - 免費IP地址查詢 - 全球IP地址定位平臺威脅日益復雜,涵蓋了多個層面,從個人用戶到大型企業,都面臨著不同形式的網絡安全威脅。以下是當前全球范圍內廣泛認可的三大網絡安全威脅: 1. 惡意軟件和病毒攻擊&#x…

【沁恒藍牙mesh】OTA功能詳解

本文基于沁恒CH58X 單片機的OTA功能 一鍵三連,收藏點贊評論 私信可獲取原文 📋 個人簡介 💖 作者簡介:大家好,我是喜歡記錄零碎知識點的小菜鳥。😎📝 個人主頁:歡迎訪問我的 Ethern…

不可錯過的10個即時通訊軟件開發技巧

歡迎來到本文,作為即時通訊軟件開發領域的專家,我將為您分享十個不容錯過的開發技巧。無論您是新手開發者還是有經驗的專業人士,這些技巧都將幫助您實現卓越的即時通訊軟件。讓我們開始吧! 1. 選擇適當的開發平臺 在開始開發之前…

注意:怎么用JMeter操作MySQL數據庫?看完秒懂!

近期用JMeter做接口測試,遇到了一個需要用到數據數據庫的場景:一個關于數據報告的頁面,需要將數據庫里面的數據求和或者取均值之后,展示出來。 如果要斷言的話,需要連接數據庫,通過寫sql語句,將…