در این مطلب، ویدئو صف منظم | LeetCode 899 | تئوری + کد پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:47
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,500 –> 00:00:06,640
[Music]
2
00:00:06,640 –> 00:00:08,559
سلام به همه و به
3
00:00:08,559 –> 00:00:10,639
یک ویدیوی دیگر خوش آمدید، بنابراین امروز میخواهیم
4
00:00:10,639 –> 00:00:13,360
سؤال کد لید را به ترتیب q حل کنیم،
5
00:00:13,360 –> 00:00:14,480
بنابراین در این سؤال
6
00:00:14,480 –> 00:00:16,800
یک رشته s و یک
7
00:00:16,800 –> 00:00:19,840
عدد صحیح k به ما داده میشود تا بتوانیم انتخاب کنیم. یکی از
8
00:00:19,840 –> 00:00:22,800
اولین حروف k از s و اضافه کردن آن
9
00:00:22,800 –> 00:00:25,199
به انتهای رشته، اکنون هدف در اینجا
10
00:00:25,199 –> 00:00:27,359
این است
11
00:00:27,359 –> 00:00:29,840
که پس از اعمال مراحلی که قبلاً ذکر کردند، کوچکترین رشته ای را که از نظر لغوی می توانید داشته باشید، برگردانید،
12
00:00:29,840 –> 00:00:31,279
13
00:00:31,279 –> 00:00:33,520
پس وقتی cba دارید به چه معناست.
14
00:00:33,520 –> 00:00:36,239
بهترین پاسخی که
15
00:00:36,239 –> 00:00:38,960
می توانید دریافت کنید abc okay
16
00:00:38,960 –> 00:00:41,360
خواهد بود، بنابراین از نظر لغوی کوچکترین
17
00:00:41,360 –> 00:00:42,800
مقدار حق است که اگر بتوانیم آن را برگردانیم، مقدار ایده آل خواهد بود،
18
00:00:42,800 –> 00:00:44,719
اما در این
19
00:00:44,719 –> 00:00:47,520
مورد شرایطی داریم که به ما می گوید
20
00:00:47,520 –> 00:00:50,559
که فقط می توانیم حرف اول را
21
00:00:50,559 –> 00:00:52,320
به پایان این تنها کاری است که
22
00:00:52,320 –> 00:00:54,719
میتوانیم انجام دهیم، اما یکی دو تا به یاد داشته باشیم این است که میتوانیم
23
00:00:54,719 –> 00:00:57,039
این کار را برای چند مرحله دیگر که میخواهیم انجام دهیم
24
00:00:57,039 –> 00:00:58,640
، محدودیتی در
25
00:00:58,640 –> 00:01:00,800
تعداد دفعاتی که میتوانیم انجام دهیم وجود ندارد، اما
26
00:01:00,800 –> 00:01:02,800
محدودیت در این واقعیت است که ما فقط میتوانیم آن
27
00:01:02,800 –> 00:01:05,680
را جابجا کنیم. فی حرف اول به آخر
28
00:01:05,680 –> 00:01:08,080
خوب است و بر اساس آن
29
00:01:08,080 –> 00:01:11,040
کوچکترین رشته واژگانی
30
00:01:11,040 –> 00:01:12,400
که میتوانیم به دست بیاوریم، همان چیزی
31
00:01:12,400 –> 00:01:15,200
است که اکنون برمیگردانیم، مثال دیگر زمانی است که
32
00:01:15,200 –> 00:01:17,520
k برابر با سه باشد، در این مورد آنچه
33
00:01:17,520 –> 00:01:19,840
به ما میگوید این است که میتوانیم هر کدام را جابجا کنیم.
34
00:01:19,840 –> 00:01:20,960
از حروف
35
00:01:20,960 –> 00:01:22,880
تا حرف سوم به طوری که شامل
36
00:01:22,880 –> 00:01:24,799
حرف اول حرف دوم و
37
00:01:24,799 –> 00:01:27,119
حرف سوم میشود، میتوانیم هر کدام را حرکت
38
00:01:27,119 –> 00:01:29,680
دهیم تا هر رشته جدیدی که میخواهیم بسازیم
39
00:01:29,680 –> 00:01:31,920
یا به عبارت دیگر
40
00:01:31,920 –> 00:01:34,320
هر رشتهای که از نظر لغوی کوچکتر است
41
00:01:34,320 –> 00:01:36,560
را به دست آوریم. در این مورد، میتوانیم b
42
00:01:36,560 –> 00:01:39,439
a یا a را به آخر حرکت دهیم و
43
00:01:39,439 –> 00:01:41,520
مراحل را بارها و بارها انجام دهیم تا زمانی که به
44
00:01:41,520 –> 00:01:43,920
هر چیزی که از آن راضی هستیم برسیم، بنابراین اکنون
45
00:01:43,920 –> 00:01:45,920
بیایید ببینیم چگونه میتوانیم این سؤال را واقعاً حل کنیم
46
00:01:45,920 –> 00:01:47,360
و در واقع یک
47
00:01:47,360 –> 00:01:49,759
الگو وجود دارد که باید انجام دهیم. به دنبال این باشید که
48
00:01:49,759 –> 00:01:51,680
واقعاً بهترین راهحل را برای این موضوع به دست آورید،
49
00:01:51,680 –> 00:01:53,439
بنابراین اجازه دهید نگاهی گذرا به آن بیندازیم،
50
00:01:53,439 –> 00:01:55,439
بنابراین در اینجا
51
00:01:55,439 –> 00:01:58,320
میخواهم با موردی که k برابر با
52
00:01:58,320 –> 00:02:00,799
1 است شروع کنم. بنابراین چیزی که ما متوجه میشویم k است.
53
00:02:00,799 –> 00:02:03,200
برابر با 1 است و وقتی k بزرگتر یا
54
00:02:03,200 –> 00:02:05,840
مساوی 2 است اساساً تنها دو
55
00:02:05,840 –> 00:02:07,840
موردی هستند که داریم و نیازی نیست
56
00:02:07,840 –> 00:02:09,280
نگران این باشیم که کی برابر با سه یا
57
00:02:09,280 –> 00:02:11,680
هر چیز دیگری باشد زیرا همه
58
00:02:11,680 –> 00:02:14,080
آنها یکسان رفتار می کنند و من
59
00:02:14,080 –> 00:02:16,319
می خواهم انجام دهم این است که در واقع به شما نشان دهم که چگونه
60
00:02:16,319 –> 00:02:18,480
این درست است، بنابراین به جای استفاده از حروف، بنابراین
61
00:02:18,480 –> 00:02:20,319
به جای استفاده از کاما b ویرگول c، به
62
00:02:20,319 –> 00:02:22,400
عنوان مثال، من فقط از 1 کاما 2
63
00:02:22,400 –> 00:02:24,560
کاما 3 استفاده می کنم. فقط فکر می کنم نگاه کردن به آن بسیار آسان تر است.
64
00:02:24,560 –> 00:02:26,720
این را
65
00:02:26,720 –> 00:02:28,879
با اعداد مقایسه کنید تا با حروف
66
00:02:28,879 –> 00:02:31,040
درست است، اما ایده
67
00:02:31,040 –> 00:02:33,599
دقیقاً یکسان خواهد بود، بنابراین بیایید اینجا بگوییم که
68
00:02:33,599 –> 00:02:36,400
من اعداد 5 کاما چهار کاما سه
69
00:02:36,400 –> 00:02:38,879
کاما دو کاما یک را دارم و گفتم k
70
00:02:38,879 –> 00:02:40,879
برابر است با یک. منظورم
71
00:02:40,879 –> 00:02:42,959
این است که آنچه به من می گوید این است که هر کاری
72
00:02:42,959 –> 00:02:44,000
که
73
00:02:44,000 –> 00:02:47,040
انجام می دهم فقط می توانم حرف اول را بگیرم
74
00:02:47,040 –> 00:02:48,800
و آن را به آخر منتقل کنم، بنابراین در این
75
00:02:48,800 –> 00:02:51,280
مورد این مقدار پنج است،
76
00:02:51,280 –> 00:02:53,519
بنابراین یک چیزی که می خواهم به شما نشان دهم این است که ما
77
00:02:53,519 –> 00:02:55,280
در واقع می توانیم همه این موارد
78
00:02:55,280 –> 00:02:58,000
ممکن را بررسی کنیم. ارزش ها در اولین بار و اوه
79
00:02:58,000 –> 00:02:59,920
اجازه دهید من فقط همین الان این کار را انجام دهم o ما
80
00:02:59,920 –> 00:03:01,519
پنج چهار سه دو یک داریم و بیایید به
81
00:03:01,519 –> 00:03:03,360
احتمالات دیگر نگاه کنیم، بنابراین
82
00:03:03,360 –> 00:03:05,599
اکنون پنج را به پایان میرسانیم و به ما چهار
83
00:03:05,599 –> 00:03:08,400
کاما سه کاما دو کاما یک و سپس
84
00:03:08,400 –> 00:03:11,200
پنج میدهیم، بنابراین اکنون میتوانیم چهار تا را به
85
00:03:11,200 –> 00:03:13,280
آخر منتقل کنیم، خب اجازه دهید من فقط همه
86
00:03:13,280 –> 00:03:15,040
اینها را یادداشت کنید تا سه کاما دو
87
00:03:15,040 –> 00:03:17,760
کاما یک کاما پنج کاما چهار داشته باشیم حالا
88
00:03:17,760 –> 00:03:19,440
سه را به آخر می بریم پس دو
89
00:03:19,440 –> 00:03:21,519
کاما یک کاما پنج
90
00:03:21,519 –> 00:03:23,760
متاسفم
91
00:03:24,480 –> 00:03:27,440
دو کاما یک کاما پنج کاما چهار
92
00:03:27,440 –> 00:03:30,080
کاما سه باحال و حالا دو را
93
00:03:30,080 –> 00:03:32,480
به آخر می بریم بنابراین یک کاما پنج کاما
94
00:03:32,480 –> 00:03:35,680
چهار کاما سه کاما
95
00:03:35,680 –> 00:03:38,159
دو راست خوب متاسفم و سپس در
96
00:03:38,159 –> 00:03:39,920
نهایت یکی را به انتها منتقل می کنیم تا به ما پنج
97
00:03:39,920 –> 00:03:43,200
کاما چهار کاما سه کاما دو کاما
98
00:03:43,200 –> 00:03:45,440
یک کامل بدهیم حالا اینها همه
99
00:03:45,440 –> 00:03:47,599
ترکیبات هستند پس نگاه کنید 5 کاما 4 کاما 3
100
00:03:47,599 –> 00:03:49,920
کاما 2 کاما 1 ما
101
00:03:49,920 –> 00:03:52,000
را در اینجا به این مقدار برمی گرداند و سپس ما فقط
102
00:03:52,000 –> 00:03:54,799
اینها را بارها و بارها تکرار می کنیم بسیار خوب
103
00:03:54,799 –> 00:03:56,400
و اینها فقط همه ترکیباتی
104
00:03:56,400 –> 00:03:58,000
هستند که ما داریم و هرگز بیشتر
105
00:03:58,000 –> 00:04:00,159
از این ترکیب ها نخواهیم داشت، بنابراین اکنون کاری که
106
00:04:00,159 –> 00:04:03,599
واقعا انجام می دهیم این است ما همه O را دریافت می کنیم از اینها و
107
00:04:03,599 –> 00:04:05,080
از اینها هر چیزی را می بینیم که از نظر
108
00:04:05,080 –> 00:04:06,879
واژگانی کوچکترین است، بنابراین در این
109
00:04:06,879 –> 00:04:09,920
مورد هر چیزی که به ترتیب صعودی نزدیکتر
110
00:04:09,920 –> 00:04:12,319
است بهترین پاسخ صحیح خواهد بود
111
00:04:12,319 –> 00:04:14,400
و ما به آنها به روشی بی رحمانه نگاه می
112
00:04:14,400 –> 00:04:16,560
کنیم و سپس
113
00:04:16,560 –> 00:04:17,680
بهترین را انتخاب می کنیم
114
00:04:17,680 –> 00:04:19,279
و در این حالت تعداد
115
00:04:19,279 –> 00:04:21,759
ترکیبهایی که داریم به
116
00:04:21,759 –> 00:04:24,240
هر اندازه طول ورودی خواهد بود، بنابراین
117
00:04:24,240 –> 00:04:25,680
در این حالت طول ورودی
118
00:04:25,680 –> 00:04:28,479
یک دو سه چهار پنج است، بنابراین ما پنج مقدار ممکن داریم، پنج
119
00:04:28,479 –> 00:04:30,240
120
00:04:30,240 –> 00:04:32,240
ترکیب ممکن برای این کار و میتوانید نگاه کنید.
121
00:04:32,240 –> 00:04:35,199
در این یک دو سه چهار و پنج
122
00:04:35,199 –> 00:04:37,680
بسیار ساده است، بنابراین اساساً
123
00:04:37,680 –> 00:04:40,000
وقتی k برابر با یک است، این چیزی که می گوید
124
00:04:40,000 –> 00:04:43,759
ما اساساً به یک دایره نگاه می کنیم خوب است
125
00:04:43,759 –> 00:04:45,680
و بهترین راه برای نشان دادن این موضوع این است
126
00:04:45,680 –> 00:04:48,240
که آن را تا پنج نقطه ترسیم کنم. دو چهار به
127
00:04:48,240 –> 00:04:51,280
سه و سپس به دو دو یک و سپس
128
00:04:51,280 –> 00:04:53,840
پنج، بنابراین در ابتدا ما پنج را به عنوان
129
00:04:53,840 –> 00:04:55,520
نقطه شروع داریم، بنابراین پنج چهار
130
00:04:55,520 –> 00:04:58,240
سه دو یک جالب داریم، اما اکنون می توانیم
131
00:04:58,240 –> 00:04:59,919
چهار را به عنوان نقطه شروع در نظر بگیریم که به ما چهار
132
00:04:59,919 –> 00:05:02,400
سه دو یک پنج می دهد. که دقیقا y این
133
00:05:02,400 –> 00:05:04,240
پس ما سه داریم که نقطه شروع می
134
00:05:04,240 –> 00:05:06,479
شود سه دو یک پنج چهار و سپس
135
00:05:06,479 –> 00:05:08,160
دو به عنوان نقطه شروع که به ما دو
136
00:05:08,160 –> 00:05:10,400
یک پنج چهار سه و سپس یک به
137
00:05:10,400 –> 00:05:12,240
ما یک پنج چهار سه دو می دهد و در نهایت
138
00:05:12,240 –> 00:05:14,960
به پنج برمی گردیم بنابراین اساساً وقتی k است
139
00:05:14,960 –> 00:05:17,280
چیزی که اتفاق میافتد این است
140
00:05:17,280 –> 00:05:20,080
که ما در آن هستیم، ما به نوعی این
141
00:05:20,080 –> 00:05:22,400
ناحیه را به اطراف میچرخانیم، مقادیری را
142
00:05:22,400 –> 00:05:24,560
که داریم میچرخانیم، اما تنها چیزی که
143
00:05:24,560 –> 00:05:26,400
واقعاً تغییر میکند نقطه شروع است که ما ترتیب
144
00:05:26,400 –> 00:05:28,400
آنها را تغییر نمیدهیم.
145
00:05:28,400 –> 00:05:30,320
‘در است اما ما
146
00:05:30,320 –> 00:05:32,960
فقط موقعیت آنها را تغییر می دهیم بسیار خوب بنابراین
147
00:05:32,960 –> 00:05:35,039
5 همیشه در کنار 4 خواهد بود. ما
148
00:05:35,039 –> 00:05:37,199
به هیچ وجه آن را تغییر نمی دهیم بنابراین
149
00:05:37,199 –> 00:05:38,960
این محدودیتی است که ما داریم وقتی
150
00:05:38,960 –> 00:05:41,360
k برابر با یک است و در
151
00:05:41,360 –> 00:05:43,520
آنچه در اینجا اتفاق می افتد این است
152
00:05:43,520 –> 00:05:46,560
که ما آرایه را در وهله اول خوب می چرخانیم،
153
00:05:46,560 –> 00:05:48,479
بنابراین همانطور که آن دایره را به شما نشان دادم،
154
00:05:48,479 –> 00:05:50,800
ما فقط آن را می چرخانیم
155
00:05:50,800 –> 00:05:52,639
و تعداد ثابتی از احتمالات
156
00:05:52,639 –> 00:05:54,560
داریم که به اندازه طول
157
00:05:54,560 –> 00:05:57,120
هر چیزی خواهد بود. ورودی است و وقتی
158
00:05:57,120 –> 00:06:00,080
k برابر 1 باشد، همه o را بدست می آوریم با این مقادیر
159
00:06:00,080 –> 00:06:01,919
و سپس هر مقداری که از نظر
160
00:06:01,919 –> 00:06:03,840
لغوی کوچکترین مقدار باشد
161
00:06:03,840 –> 00:06:05,919
را دریافت میکنیم و آن را برمیگردانیم، اما اکنون جایی که
162
00:06:05,919 –> 00:06:08,400
متفاوت میشود زمانی است که k بزرگتر یا
163
00:06:08,400 –> 00:06:10,560
مساوی دو است، بنابراین برای شروع، اجازه
164
00:06:10,560 –> 00:06:12,720
دهید با حالت پایه شروع کنیم وقتی
165
00:06:12,720 –> 00:06:16,000
k برابر است با دو، بنابراین کاری که میخواهم انجام دهم این است
166
00:06:16,000 –> 00:06:18,000
که یک مثال کوچکتر بزنیم،
167
00:06:18,000 –> 00:06:20,720
فکر میکنم این کار آسانتر خواهد بود، بنابراین بگوییم که ما
168
00:06:20,720 –> 00:06:21,600
دو
169
00:06:21,600 –> 00:06:24,960
اوه ویرگول یک کاما سه کاما چهار
170
00:06:24,960 –> 00:06:27,280
میگیریم بسیار خوب، بنابراین در این مورد
171
00:06:27,280 –> 00:06:29,360
چگونه بهترین مقدار را به دست آوریم. ما
172
00:06:29,360 –> 00:06:32,000
بهترین مقدار را زمانی دریافت می کنیم که یک کاما دو
173
00:06:32,000 –> 00:06:33,759
کاما سه کاما چهار ترتیب مونتاژ
174
00:06:33,759 –> 00:06:36,240
درست به دست آوریم، بنابراین این بهترین پاسخ است اکنون چگونه
175
00:06:36,240 –> 00:06:38,160
می توانیم واقعاً به این دست یابیم، می توانیم به این
176
00:06:38,160 –> 00:06:41,280
دست یابیم که با تعویض یک و دو اکنون
177
00:06:41,280 –> 00:06:44,160
این امکان وجود دارد که k برابر باشد. دو،
178
00:06:44,160 –> 00:06:46,080
اما زمانی که k برابر با
179
00:06:46,080 –> 00:06:48,160
یک باشد، زمانی که k برابر با 1 است، امکان پذیر نیست، تنها چیزی که
180
00:06:48,160 –> 00:06:51,440
اتفاق می افتد این است که مجموعه مقادیر خود را بچرخانیم،
181
00:06:51,440 –> 00:06:53,759
اما زمانی که k برابر با 2 است، عملیات بزرگی
182
00:06:53,759 –> 00:06:56,080
که در این مورد می توانیم انجام دهیم این است
183
00:06:56,080 –> 00:06:59,120
که می توانیم یک تعویض انجام دهیم. عملیات و
184
00:06:59,120 –> 00:07:01,520
زمانی که ما بتوانیم آن را انجام دهیم، در واقع می توانیم
185
00:07:0