Dalam usaha berterusan saya untuk mempertajam kemahiran LeetCode saya, saya telah menangani masalah "Masa Terbaik untuk Membeli dan Menjual Saham II". Cabaran ini adalah susulan kepada masalah klasik "Masa Terbaik untuk Membeli dan Menjual Saham II" (LeetCode 121) tetapi dengan perbezaan penting: *anda boleh melaksanakan berbilang transaksi untuk memaksimumkan keuntungan.
*
Sebelum menyelami kod, saya mendapati ia amat membantu untuk menggambarkan masalah pada papan putih. Ini membolehkan saya memecahkan masalah kepada langkah yang lebih kecil dan lebih terurus.
Memandangkan fleksibiliti untuk membuat transaksi tanpa had, pendekatan tamak nampaknya menjanjikan. Idea terasnya mudah: apabila harga saham meningkat berbanding hari sebelumnya, kami menganggapnya sebagai peluang keuntungan yang berpotensi. Dengan menjumlahkan semua perbezaan harga ini, kami mengira keuntungan maksimum dengan berkesan.
Inilah kod Python yang melaksanakan strategi tamak ini:
class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(1, len(prices)): if prices[i] > prices[i-1]: profit+=prices[i] - prices[i-1] return profit
/** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { var profit = 0; for (var i = 1; i < prices.length; i++) { if(prices[i] > prices[i-1]) { profit += Number(prices[i] - prices[i-1]) } } return profit };
Atas ialah kandungan terperinci Memecahkan Kod Leet . Masa Terbaik untuk Membeli dan Menjual Stok II. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!