در این مطلب، ویدئو پنجره کشویی: بهترین زمان برای خرید و فروش سهام – Leetcode 121 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:08:45
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,680
سلام به همه خوش آمدید و بیایید
2
00:00:01,680 –> 00:00:03,199
امروز یک کد دقیق تر بنویسیم
3
00:00:03,199 –> 00:00:04,720
و فراموش نکنید که دکمه لایک
4
00:00:04,720 –> 00:00:06,799
را بزنید، کانال را بسیار پشتیبانی می کند، بنابراین امروز
5
00:00:06,799 –> 00:00:09,040
بیایید به نشت کد 121
6
00:00:09,040 –> 00:00:11,679
بهترین زمان برای خرید و فروش سهام نگاه کنیم تا اگر
7
00:00:11,679 –> 00:00:13,440
کمی می دانید در مورد بازار سهام
8
00:00:13,440 –> 00:00:16,960
معمولاً این ضرب المثل این است که کم بخرید
9
00:00:16,960 –> 00:00:20,160
و بالا بفروشید، بنابراین در این مورد به
10
00:00:20,160 –> 00:00:22,720
ما یک آرایه ورودی داده می شود که اکنون هر
11
00:00:22,720 –> 00:00:23,359
مقدار
12
00:00:23,359 –> 00:00:26,560
نشان دهنده قیمت یک سهام
13
00:00:26,560 –> 00:00:30,080
در یک روز خاص است و به
14
00:00:30,080 –> 00:00:32,800
ما یک معامله داده می شود به این معنی که می توانیم
15
00:00:32,800 –> 00:00:33,280
خرید کنیم.
16
00:00:33,280 –> 00:00:36,320
در یکی از این روزها و سپس در روز دیگری بفروشیم
17
00:00:36,320 –> 00:00:37,520
18
00:00:37,520 –> 00:00:40,719
و ما معامله ای می خواهیم که
19
00:00:40,719 –> 00:00:42,800
سود ما را به حداکثر برساند و سپس می خواهیم
20
00:00:42,800 –> 00:00:44,000
در این صورت آن سود را برگردانیم
21
00:00:44,000 –> 00:00:46,960
اگر در روز دوم که قیمت
22
00:00:46,960 –> 00:00:47,200
23
00:00:47,200 –> 00:00:50,160
یک است بخریم و روز پنجم که قیمت است بفروشیم.
24
00:00:50,160 –> 00:00:50,640
شش
25
00:00:50,640 –> 00:00:52,079
این چیزی است که
26
00:00:52,079 –> 00:00:54,480
سود را برای ما به حداکثر میرساند، بنابراین مثل
27
00:00:54,480 –> 00:00:56,000
همیشه میخواهم یک تصویر بکشم و به شما نشان دهم
28
00:00:56,000 –> 00:00:57,680
که این مشکل در واقع خیلی
29
00:00:57,680 –> 00:00:58,079
بد نیست،
30
00:00:58,079 –> 00:01:01,520
حتی راهحل بهینه آن، بنابراین روز
31
00:01:01,520 –> 00:01:05,040
اول قیمت هفت بود و سپس
32
00:01:05,040 –> 00:01:08,400
کاهش یافت. تمام راه به قیمت یکی
33
00:01:08,400 –> 00:01:11,200
از روز بعد از قیمت
34
00:01:11,200 –> 00:01:12,400
یک به قیمت
35
00:01:12,400 –> 00:01:14,320
پنج رسید و ما میتوانستیم همینطور ادامه
36
00:01:14,320 –> 00:01:15,600
دهیم، بنابراین
37
00:01:15,600 –> 00:01:18,000
روز بعد پایین آمد و روز
38
00:01:18,000 –> 00:01:19,040
بعد بالا رفت
39
00:01:19,040 –> 00:01:22,240
و روز آخر دوباره پایین آمد،
40
00:01:22,240 –> 00:01:24,080
بنابراین به عکس نگاه کنید بسیار زیبا است.
41
00:01:24,080 –> 00:01:25,360
واضح است
42
00:01:25,360 –> 00:01:28,960
که حداکثر سودی که می توانیم به دست آوریم صرفاً با
43
00:01:28,960 –> 00:01:30,159
44
00:01:30,159 –> 00:01:33,600
گرفتن حداقل و حداکثر
45
00:01:33,600 –> 00:01:36,560
در اینجا است و اگر به مقادیر واقعی
46
00:01:36,560 –> 00:01:37,280
برای آن
47
00:01:37,280 –> 00:01:40,640
نگاه کنیم می بینیم که این یک است
48
00:01:40,640 –> 00:01:44,159
این شش است بنابراین سود
49
00:01:44,159 –> 00:01:47,520
شش منهای یک می شود که
50
00:01:47,520 –> 00:01:50,960
پنج می شود. اما توجه کنید که ما در واقع
51
00:01:50,960 –> 00:01:52,240
52
00:01:52,240 –> 00:01:54,240
ماکزیمم بزرگتر از این یکی درست مثل این
53
00:01:54,240 –> 00:01:55,520
شش است اما این
54
00:01:55,520 –> 00:01:58,880
هفت است، پس چرا ما نمی توانیم این کار را انجام دهیم
55
00:01:58,880 –> 00:02:01,920
زیرا پس از آن هفت منهای یک می گیریم
56
00:02:01,920 –> 00:02:03,520
که شش است که
57
00:02:03,520 –> 00:02:06,640
حتی بزرگتر از پنج است خوب معلوم می شود
58
00:02:06,640 –> 00:02:08,479
ما می دانیم که زمان
59
00:02:08,479 –> 00:02:11,760
در یک جهت به سمت راست حرکت می کند، ما نمی توانیم به
60
00:02:11,760 –> 00:02:17,040
عقب برگردیم تا با این قیمت بفروشیم،
61
00:02:17,040 –> 00:02:18,640
بنابراین چگونه می خواهیم این مشکل را حل
62
00:02:18,640 –> 00:02:21,200
کنیم، یک
63
00:02:21,200 –> 00:02:24,000
تکنیک برنامه نویسی بسیار رایج دو نشانگر وجود دارد، بنابراین
64
00:02:24,000 –> 00:02:25,760
ما
65
00:02:25,760 –> 00:02:28,800
یک نشانگر چپ را مقداردهی اولیه می کنیم. روز اول
66
00:02:28,800 –> 00:02:31,920
و اشاره گر سمت راست ما در روز دوم که
67
00:02:31,920 –> 00:02:32,959
منطقی به نظر
68
00:02:32,959 –> 00:02:35,920
می رسد سمت راست در سمت راست سمت چپ باشد
69
00:02:35,920 –> 00:02:36,959
و بنابراین ما می خواهیم ببینیم
70
00:02:36,959 –> 00:02:39,440
که سود فعلی در حال حاضر از
71
00:02:39,440 –> 00:02:40,160
اینجا
72
00:02:40,160 –> 00:02:42,879
به اینجا چقدر است خوب به سمت راست پایین می آید
73
00:02:42,879 –> 00:02:45,440
که خوب نیست منفی است
74
00:02:45,440 –> 00:02:48,800
و در این مورد چپ می رود
75
00:02:48,800 –> 00:02:50,239
76
00:02:50,239 –> 00:02:53,040
روزی باشد که میخریم و مینویسیم، روزی است
77
00:02:53,040 –> 00:02:54,080
که میفروشیم،
78
00:02:54,080 –> 00:02:55,519
بنابراین اولین چیزی که متوجه میشوید این
79
00:02:55,519 –> 00:02:57,760
است که پایین است، درست
80
00:02:57,760 –> 00:02:59,519
منفی است، خوب نیست، ما
81
00:02:59,519 –> 00:03:01,599
سود منفی نمیخواهیم، چرا وق
82
00:03:01,599 –> 00:03:04,800
ی میخواهیم چپ بخریم. می توانم سمت راست بخرم
83
00:03:04,800 –> 00:03:08,640
کمتر از چپ است چرا باید هفت بپردازم در
84
00:03:08,640 –> 00:03:11,519
حالی که می توانم یک روز صبر کنم و یکی بپردازم،
85
00:03:11,519 –> 00:03:13,120
86
00:03:13,120 –> 00:03:14,959
بنابراین الگوریتم اساساً اینگونه
87
00:03:14,959 –> 00:03:16,159
کار می کند زیرا
88
00:03:16,159 –> 00:03:19,200
مقدار سمت راست ما کمتر از چپ است،
89
00:03:19,200 –> 00:03:20,879
ما نشانگر خود
90
00:03:20,879 –> 00:03:24,159
را به سمت چپ به روز می کنیم، بنابراین چپ اکنون می خواهد
91
00:03:24,159 –> 00:03:27,680
در روز دوم باشید و سمت راست در
92
00:03:27,680 –> 00:03:30,799
روز سه خواهد بود، بنابراین اکنون می بینیم
93
00:03:30,799 –> 00:03:33,760
که مقدار سمت راست در واقع بزرگتر
94
00:03:33,760 –> 00:03:34,879
از مقدار سمت چپ است،
95
00:03:34,879 –> 00:03:38,000
اما سود چقدر است
96
00:03:38,400 –> 00:03:41,200
، سود در این مورد 5
97
00:03:41,200 –> 00:03:42,000
منهای
98
00:03:42,000 –> 00:03:45,519
1 خواهد بود که می دانیم برابر با 4 است
99
00:03:45,519 –> 00:03:49,440
که تا کنون حداکثر سود فعلی ما
100
00:03:49,440 –> 00:03:51,680
تا کنون nt max من 4 را قرار می دهم
101
00:03:51,680 –> 00:03:53,519
102
00:03:53,519 –> 00:03:56,159
و در این مورد چون نشانگر چپ ما
103
00:03:56,159 –> 00:03:58,159
کمتر از نشانگر سمت راست ما است
104
00:03:58,159 –> 00:04:00,640
زیرا ما در حال خرید پایین و فروش بالا
105
00:04:00,640 –> 00:04:01,840
هستیم، به این معنی است که می
106
00:04:01,840 –> 00:04:03,680
توانیم نشانگر چپ خود را اینجا بگذاریم و فقط
107
00:04:03,680 –> 00:04:06,159
باید به روز کنیم. نشانگر سمت راست ما
108
00:04:06,159 –> 00:04:08,640
حالا بیایید چپ و راست خود را با هم مقایسه کنیم، بنابراین
109
00:04:08,640 –> 00:04:11,120
ما در اینجا خرید می کنیم، در اینجا می فروشیم،
110
00:04:11,120 –> 00:04:14,720
در این صورت سود 3
111
00:04:14,720 –> 00:04:17,759
منهای 1 خواهد بود که فقط
112
00:04:17,759 –> 00:04:20,399
2 است. بنابراین اگر به حداکثر فعلی ما نگاهی
113
00:04:20,399 –> 00:04:22,720
بیندازید، 4 است. بنابراین ما حداکثر سود خود را بهروزرسانی
114
00:04:22,720 –> 00:04:24,320
115
00:04:24,320 –> 00:04:26,320
نمیکنیم و متوجه میشویم که نشانگر چپ خود را
116
00:04:26,320 –> 00:04:28,000
کم میخریم و