」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 最大總和連續子陣列的PHP程序

最大總和連續子陣列的PHP程序

發佈於2025-02-16
瀏覽:213

什麼是PHP?

最大總和連續子陣列

的PHP程序 [2

4(-1)2 1 = 6

[2 PHP Program for Largest Sum Contiguous Subarray

使用Kadane的算法 Kadane的算法是一種有效的算法,用於在給定數組中找到連續子陣列的最大總和。它是由Jay Kadane於1984年開發的。

通過迭代掃描數組並維護兩個變量來工作:max_so_far和max_ending_here。以下是算法的工作方式:

初始化max_so_far和max_ending_here變量,如果數組包含負數,則為數組的第一個元素或最小值(例如,php_int_min)。

通過第二個元素開始的數組迭代。

    對於每個元素,通過向其添加當前元素來更新max_ending_here。
  • 如果max_ending_here變為負,則將其重置為0,因為包括子陣列中的當前元素將減少總和。
  • 如果max_ending_here大於max_so_far,則使用新的最大總和更新max_so_far。

  • 對於數組的其餘元素,重複步驟3到5。

  • 在整個數組中迭代後,max_so_far將保持連續子陣列的最大總和。
  • 結果返回max_so_far作為結果。
  • Kadane的算法具有O(n)的時間複雜性,其中N是數組的大小,因為它僅需要一個通過數組。這使其成為找到最大總和連續子陣列的有效解決方案。
  • 例子

  • 輸出

    最大連續總和為6
  • 使用算法範式:動態編程

    例子

輸出

最大連續總和為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的算法是程序的關鍵組成部分,負責找到最大的總和連續子陣列。它通過添加當前元素或啟動新子陣列來不斷地更新當前總和。遇到的最大總和存儲在

$

通過利用動態編程和Kadane的算法,該程序實現了O(n)的時間複雜性,其中N是數組的大小。這樣可以確保找到PHP中最大的總和連續亞陣列的有效解決方案。

版本聲明 本文轉載於:https://www.tutorialspoint.com/php-program-for-largest-sum-contiguous-subarray如有侵犯,請聯繫[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3