"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تكسير LeetCode . أفضل وقت لشراء وبيع الأسهم II

تكسير LeetCode . أفضل وقت لشراء وبيع الأسهم II

تم النشر بتاريخ 2024-08-05
تصفح:315

في سعيي المستمر لصقل مهاراتي في LeetCode، عالجت مشكلة "أفضل وقت لشراء وبيع الأسهم II". هذا التحدي هو متابعة لمشكلة "أفضل وقت لشراء وبيع الأسهم II" الكلاسيكية (LeetCode 121) ولكن مع اختلاف حاسم: *يمكنك تنفيذ معاملات متعددة لتحقيق أقصى قدر من الربح.
*

نهج مرئي

قبل الغوص في التعليمات البرمجية، وجدت أنه من المفيد للغاية تصور المشكلة على السبورة البيضاء. وقد سمح لي هذا بتقسيم المشكلة إلى خطوات أصغر وأكثر قابلية للإدارة.

Cracking the LeetCode . Best Time to Buy and Sell Stock II

النهج الجشع

نظرًا للمرونة في إجراء معاملات غير محدودة، بدا النهج الجشع واعدًا. الفكرة الأساسية بسيطة: كلما ارتفع سعر السهم مقارنة باليوم السابق، فإننا نعتبر ذلك فرصة ربح محتملة. ومن خلال جمع كل هذه الفروق في الأسعار، فإننا نحسب الحد الأقصى للربح بشكل فعال.

تنفيذ بايثون

إليك كود بايثون الذي ينفذ هذه الإستراتيجية الجشعة:

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[i-1])
    {
        profit  = Number(prices[i] - prices[i-1])
    }
    }

    return profit
};

تعقيد الزمان والمكان

  • التعقيد الزمني لهذا النهج هو O(N) حيث N = طول المصفوفة.
  • التعقيد المكاني هو N(1) حيث أننا نقارن في المكان.
بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/this-learning/cracking-the-leetcode-122-best-time-to-buy-and-sell-stock-ii-17k5؟1 إذا كان هناك أي انتهاك ، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3