Menu
CoddyTech
flag Ar iconالعربيةdown icon

Best Time to Buy and Sell Stock

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

خذ الأسعار [7, 2, 5, 9, 1, 4]. الشراء بسعر 2 في اليوم 1 والبيع بسعر 9 في اليوم 3 يحقق ربحًا قدره 7، ولا يحقق أي زوج آخر من الأيام ربحًا أكبر. قد يبدو الشراء بسعر 1 في اليوم 4 مغريًا لأنه أرخص يوم، لكن سعر البيع في اليوم اللاحق الوحيد هو 4، لذا لا تحقق هذه الصفقة سوى ربح قدره 3.

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

اكتب دالة باسم maxProfit تستقبل قائمة من الأعداد الصحيحة prices، حيث يمثّل prices[i] سعر السهم في اليوم i، وتُرجع أكبر ربح يمكنك تحقيقه بشراء السهم في يوم وبيعه في يوم لاحق. إذا لم تحقق أي صفقة ربحًا، فأرجع 0.

القيود: 1 ≤ prices.length ≤ 10^5، 0 ≤ prices[i] ≤ 10^4.

الدالة

maxProfit(arg1: integer-array) → integer
arg1integer-array
تُرجعinteger

أمثلة

المدخلات
arg1 = [7, 2, 5, 9, 1, 4]
المخرجات
7

lock icon+12 اختبارات مخفية عند الإرسال

إعادة ضبط الشيفرة
def maxProfit(prices):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

المدخلات

arg1 = [7, 2, 5, 9, 1, 4]

المتوقع

7