تابعی ایجاد کنید که یک لیست از اعداد صحیح که نشاندهنده مقدار دلاری یک سهام در روز های متوالی است را دریافت کند و حداکثر سودی که میتوانست با خرید سهام در روز x و فروش سهام در روز y که y > x
است را بازگرداند.
اگر لیست زیر داده شود:
[44, 30, 24, 32, 35, 30, 40, 38, 15]
برنامه شما باید 16
را برگرداند زیرا اگر در روز سوم که سهام به ارزش $24 بوده بخرید و در روز هفتم که سهام به ارزش $40 است، بفروشید، سودی معادل $16 خواهید داشت که بیشترین سود ممکن با این لیست قیمت سهام است.
اگر هیچ سودی با قیمتهای سهام قابل دستیابی نباشد، برنامه شما باید -1
را برگرداند (برای مثال [10, 9, 8, 2]
باید -1
را برگرداند).
نمونه ورودی و خروجی
StockPicker([10, 12, 4, 5, 9]) ➞ 5
StockPicker([14, 20, 4, 12, 5, 11]) ➞ 8
StockPicker([80, 60, 10, 8]) ➞ -1
EXPECT_EQ(StockPicker({10, 12, 4, 5, 9}), 5); EXPECT_EQ(StockPicker({14, 20, 4, 12, 5, 11}), 8); EXPECT_EQ(StockPicker({80, 60, 10, 8}), -1); EXPECT_EQ(StockPicker({10, 1000, 1, 1, 1, 2000, 3}), 1999); EXPECT_EQ(StockPicker({7, 1, 5, 5, 2, 1, 3}), 4); EXPECT_EQ(StockPicker({100, 10, 8, 5}), -1);
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات