【算法系列之十四】最大子序和

1、題目描述

給定一個整數數組 nums?,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。

示例:

輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋:?連續子數組?[4,-1,2,1] 的和最大,為?6。

2、解法及解題思路

public class MaximumSubarray {public static void main(String[] args) {int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};// int[] nums = {-1, -3, -4, 4, -2, -1, -5, -4};System.out.println(maxSubArray(nums));System.out.println(maxSubArray1(nums));}/*** 解法一 動態規劃(Kadane 算法)** @param nums* @return*/private static int maxSubArray(int[] nums) {// 迄今為止的最大和int res = nums[0];// 前一元素位置的最大和int sum = 0;for (int num : nums) {if (sum > 0) {// 如果 sum > 0,則說明 sum 對結果有增益效果,則 sum 保留并加上當前遍歷數字sum += num;} else {// 如果 sum <= 0,則說明 sum 對結果無增益效果,需要舍棄,則 sum 直接更新為當前遍歷數字sum = num;}// 每次比較 sum 和 res的大小,將最大值置為res,遍歷結束返回結果res = Math.max(res, sum);}return res;}/*** 解法二 貪心算法** @param nums* @return*/private static int maxSubArray1(int[] nums) {// 當前元素位置的最大和int curMax = nums[0];// 迄今為止的最大和int soFarMax = nums[0];for (int i = 1; i < nums.length - 1; i++) {curMax = Math.max(curMax, curMax + nums[i]);soFarMax = Math.max(soFarMax, curMax);}return soFarMax;}}

?

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

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

相關文章

python的代碼復用技術_Python__函數和代碼復用

主要內容函數的定義和使用實例:七段數碼管的繪制代碼復用與函數遞歸PyInstall庫的使用實例&#xff1a;科赫雪花小包裹函數的定義與使用函數的理解與定義函數的使用及調用過程函數的參數傳遞函數的返回值局部變量和全局變量lambda函數------------------------------------函數…

Queue:poll、offer、element、peek的區別

隊列是一種特殊的線性表&#xff0c;它只允許在表的前端&#xff08;front&#xff09;進行刪除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;進行插入操作。進行插入操作的端稱為隊尾&#xff0c;進行刪除操作的端稱為隊頭。隊列中沒有元素時&#xff0c;稱為空隊…

python實現k均值算法_python實現kMeans算法

聚類是一種無監督的學習&#xff0c;將相似的對象放到同一簇中&#xff0c;有點像是全自動分類&#xff0c;簇內的對象越相似&#xff0c;簇間的對象差別越大&#xff0c;則聚類效果越好。1、k均值聚類算法k均值聚類將數據分為k個簇&#xff0c;每個簇通過其質心&#xff0c;即…

mysql給數據量大的表添加索引的辦法

有一個問題&#xff0c;一張表有3百萬條記錄&#xff0c;隨著時間的增加&#xff0c;記錄量會更多&#xff0c;此時查詢速度很慢。在創建此表前沒有未相應字段添加索引&#xff0c;所以此時需要為表添加索引。但是因為數據量大的原因&#xff0c;索引添加不成功&#xff0c;想了…

修改背景圖片_我花了5小時,為網易修改了一份內容超多的PPT,效果超級贊!!...

微信掃碼觀看全套Excel、Word、PPT視頻作者&#xff1a;宋雪賢 來源&#xff1a;PPT進化論(ID&#xff1a;PPTjinhualun)哈嘍&#xff0c;大家好&#xff0c;不知道您看過《我花了3個小時&#xff0c;為京東修改了一份PPT&#xff0c;效果好到驚人&#xff01;》這篇案例修改文…

MySQL千萬級別大表如何優化?

當MySQL單表記錄數過大時&#xff0c;增刪改查性能都會急劇下降&#xff0c;可以參考以下步驟來優化&#xff1a; 單表優化 除非單表數據未來會一直不斷上漲&#xff0c;否則不要一開始就考慮拆分&#xff0c;拆分會帶來邏輯、部署、運維的各種復雜度&#xff0c;一般以整型值…

linux c 調用python_C程序調用Python腳本

一般調用步驟Py_Initialize(); //初始化Python環境PyImport_ImportModule("test"); // 載入python模塊PyObject_GetAttrString(g_pModule,"test1"); //獲得相應Python函數的PyObjectPyObject_CallFunction(test1,"i,s",2,e); //調用Python相應的…

命令測試post_【第2088期】前端中臺化,把格局做大——NodeJS 和測試服務探索

前言今日早讀文章由《React狀態管理與同構實戰》作者LucasHC投稿分享。正文從這開始~~近些年&#xff0c;「NodeJS 應該如何在公司業務中真實落地 」這類問題屢見不鮮。自從 2009 年 NodeJS 誕生之后&#xff0c;搶盡風頭&#xff0c;圈粉無數。但一定有工程師不禁要質疑「Node…

Go類型轉換

由于Go語言不存在隱式類型轉換&#xff0c;因此所有的類型轉換都必須顯式的聲明。 string、int、float類型相互轉換 string轉其他 string轉成int&#xff1a; int, err : strconv.Atoi(string) string轉成int64&#xff1a; // 參數1&#xff1a;帶轉換字符串&#xff0c;/…

linux tee 重定向_快樂的linux命令行-重定向

整理自《快樂的linux命令行一書》。linux系統版本&#xff1a; Ubuntu 17.04本章&#xff0c;我們將介紹命令行最酷的特性&#xff0c;叫做I/O重定向&#xff0c;通過這個工具&#xff0c;可以重定向命令的輸入輸出&#xff0c;命令的輸入來自文件&#xff0c;而輸出也存到文。…

Java 診斷工具 Arthas 常見命令

基本概念 云原生這么多微服務&#xff0c;當然需要一個診斷利器來排查問題。 Arthas 是阿里開源的 Java 診斷工具&#xff0c;深受開發者喜愛。在線排查問題&#xff0c;無需重啟&#xff1b;動態跟蹤 Java 代碼&#xff1b;實時監控 JVM 狀態。Arthas 支持 JDK 6&#xff0c…

28和lba48命令格式區別_編譯Sass(命令行)

本文作者&#xff1a;開課吧無憂圖文編輯&#xff1a;開三金sass編譯有很多種方式&#xff0c;如命令行編譯模式、編輯器自動編譯、編譯軟件koala、sass-loader等。今天我們就先來看第一種&#xff1a;命令行編譯剛才我在test文件夾里面已經建立了一個style.scss文件&#xff0…

JAVA基礎編程代碼50個

【程序1】 題目&#xff1a;古典問題&#xff1a;有一對兔子&#xff0c;從出生后第3個月起每個月都生一對兔子&#xff0c;小兔子長到第三個月后每個月又生一對兔子&#xff0c;假如兔子都不死&#xff0c;問每個月的兔子對數為多少&#xff1f; 程序分析&#xff1a; 兔子…

爬蟲軟件python功能_Python 網絡爬蟲程序詳解

#!/usr/bin/python #調用pythonfrom sys import argv #導入sys是導入python解釋器和他環境相關的參數from os import makedirs,unlink,sep  #os主要提供對系統路徑&#xff0c;文件重命名和刪除文件所需的函數#makedirs是創建遞歸文件夾的函數。#比如說我們要創建一個新的目錄…

價錢轉換python_如何在python中轉換貨幣?

我正在做一個虛擬助手項目。我想讓它告訴我其他貨幣的美元匯率。我用beauthoulsoup編寫了以下代碼&#xff0c;它從給定的網站獲取數據&#xff0c;對其進行解析并在命令行中打印結果供我閱讀。但這只是美元對巴基斯坦盧比。如何修改程序&#xff0c;使其接受任何貨幣并告訴我該…

char qt 轉unicode_Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 亂碼與轉碼問題...

2012-03-22 14:00175人閱讀評論(0)代碼如下&#xff1a;如果不不設全局的字符集是utf-8&#xff0c;那么網上一般的方法是可以轉的。如下程序中 #define DD 1的情況下&#xff1b;但是如果設置了全局的utf-8&#xff0c;再用以前的方法&#xff1a;QByteArraybaaaa.toLatin1();…

計算機圖形學考試題及答案_計算機圖形學考試題及答案

3、在圖形文件中&#xff0c;常用來描述圖形元素(點&#xff0c;線&#xff0c;圓&#xff0c;弧等)&#xff1b;而在光柵掃描圖形顯示器中&#xff0c;采用顯示所有圖形。4、當三維物體用透視變換方程投影到觀察平面上&#xff0c;物體中不與觀察平面平行任一簇平行線投影成收…

子窗體中組合框聯動_一張表實現組合框聯動

嗨&#xff0c;大家中午好&#xff01;最近&#xff0c;有網友給我私信&#xff0c;想要一個聯動的示例&#xff0c;一個有關于部門聯動的操作。其實關于聯動的操作有很多&#xff0c;可以是組合框的聯動&#xff0c;列表框聯動&#xff0c;組合框與列表框也可以聯動&#xff0…

中如何實現文字轉語音_錄音轉文字、文字轉語音,學會這一招就夠了!手把手教你如何操作...

閱讀文章時候想著有人可以把文章讀給我聽就好了&#xff0c;寫作時想著語音直接可以轉換成文字就好了&#xff0c;大家是不是有時會突然冒出這樣的想法&#xff1f;七十這些看似天真的想法&#xff0c;還真的有辦法解決&#xff0c;這里就手把手教你如何操作才能將的文字轉換成…

圖像 理想低通濾波_圖像處理之濾波(下)

[toc]目錄一、常規濾波低通高通帶通帶阻二、非局部均值濾波三、維納濾波四、卡爾曼濾波前言所謂濾波&#xff0c;其實就是從混合在一起的諸多信號中提取出所需要的信號。信號的分類&#xff1a;確定型信號&#xff0c;可以表示為確定的時間函數&#xff0c;可確定其在任何時刻的…