什麼是PHP?
最大總和連續子陣列
的PHP程序 [2
[2
使用Kadane的算法 Kadane的算法是一種有效的算法,用於在給定數組中找到連續子陣列的最大總和。它是由Jay Kadane於1984年開發的。
通過迭代掃描數組並維護兩個變量來工作:max_so_far和max_ending_here。以下是算法的工作方式:
初始化max_so_far和max_ending_here變量,如果數組包含負數,則為數組的第一個元素或最小值(例如,php_int_min)。通過第二個元素開始的數組迭代。
如果max_ending_here變為負,則將其重置為0,因為包括子陣列中的當前元素將減少總和。
如果max_ending_here大於max_so_far,則使用新的最大總和更新max_so_far。
結果返回max_so_far作為結果。
Kadane的算法具有O(n)的時間複雜性,其中N是數組的大小,因為它僅需要一個通過數組。這使其成為找到最大總和連續子陣列的有效解決方案。
最大連續總和為6
例子
輸出
一種開始和結束索引
”。 “結束索引”。 $結束。 “ ”; } //驅動程序代碼 $ a = array(-2,1,-3,4,-1,2,1,-5,4); $ n = sizeof($ a); $ max_sum = maxSubarraysum($ a,$ n); ? >
最大連續總和為6 開始索引3 結束索引6
用於查找最大總和連續子陣列的PHP程序利用動態編程和Kadane的算法。動態編程方法用於通過將問題分解為較小的子問題並將解決方案存儲在數組中來有效地解決該問題。
通過利用動態編程和Kadane的算法,該程序實現了O(n)的時間複雜性,其中N是數組的大小。這樣可以確保找到PHP中最大的總和連續亞陣列的有效解決方案。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3