در این مطلب، ویدئو مرتب سازی رنگ ها – پارتیشن مرتب سازی سریع – Leetcode 75 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:31
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,760
سلام به همه خوش آمدید و بیایید امروز
2
00:00:01,760 –> 00:00:04,000
چند کد دقیق تر بنویسیم، بنابراین امروز
3
00:00:04,000 –> 00:00:04,880
بیایید
4
00:00:04,880 –> 00:00:07,600
مرتب سازی رنگ ها را حل کنیم، این یک مشکل بسیار خوب
5
00:00:07,600 –> 00:00:08,960
است من واقعاً این مشکل را دوست دارم به
6
00:00:08,960 –> 00:00:09,599
7
00:00:09,599 –> 00:00:12,639
ما یک آرایه از اعداد داده شده است و آنها
8
00:00:12,639 –> 00:00:14,240
کمی توضیح
9
00:00:14,240 –> 00:00:15,440
مانند هر عدد را به ما می دهند. هر کدام
10
00:00:15,440 –> 00:00:16,960
که می دانید مقدار در nums یک رنگ است، اما
11
00:00:16,960 –> 00:00:18,160
اجازه دهید از آن بگذریم زیرا فکر می
12
00:00:18,160 –> 00:00:18,960
کنم به نوعی
13
00:00:18,960 –> 00:00:21,119
همه چیز را کمی
14
00:00:21,119 –> 00:00:23,119
پیچیده تر می کند، بنابراین بیایید به سادگی به آن فکر
15
00:00:23,119 –> 00:00:25,760
کنیم به ما آرایه ای از nums n مقدار در
16
00:00:25,760 –> 00:00:26,640
این آرایه داده می شود که
17
00:00:26,640 –> 00:00:29,039
هر یک از مقادیر می تواند از سه
18
00:00:29,039 –> 00:00:30,880
عدد صحیح مختلف باشد که هر مقدار می تواند
19
00:00:30,880 –> 00:00:31,439
صفر
20
00:00:31,439 –> 00:00:35,040
یک یا دو باشد که می خواهیم این آرایه را بگیریم
21
00:00:35,040 –> 00:00:37,280
و سپس آن را به ترتیب صعودی درست مرتب کنیم،
22
00:00:37,280 –> 00:00:37,840
23
00:00:37,840 –> 00:00:39,760
بنابراین بیایید بگوییم این آرایه ورودی است که
24
00:00:39,760 –> 00:00:41,120
می خواهیم به ترتیب صعودی
25
00:00:41,120 –> 00:00:43,360
صفر اول یک بعدی باشد و سپس دو
26
00:00:43,360 –> 00:00:45,440
نفر کاملاً ساده هستند، اما
27
00:00:45,440 –> 00:00:47,120
راههای مختلفی وجود دارد که میتوانید این
28
00:00:47,120 –> 00:00:49,440
مشکل را با کاراییهای متفاوت و
29
00:00:49,440 –> 00:00:51,120
پیچیدگیهای حافظهی متفاوت حل کنید،
30
00:00:51,120 –> 00:00:52,800
بنابراین آنها بلافاصله به ما میگویند که ما
31
00:00:52,800 –> 00:00:54,559
نمیتوانیم مانند یک کتابخانه مرتبسازی
32
00:00:54,559 –> 00:00:55,120
f استفاده کنیم. unction
33
00:00:55,120 –> 00:00:56,800
زیرا البته توابع مرتبسازی کتابخانه
34
00:00:56,800 –> 00:00:58,399
در
35
00:00:58,399 –> 00:01:00,320
زمان ورود به سیستم اجرا میشوند، این فقط یک
36
00:01:00,320 –> 00:01:02,160
تابع به نام just call sort در این
37
00:01:02,160 –> 00:01:05,040
آرایه خواهد بود، اما من حدس میزنم که ما میتوانیم تابع مرتبسازی uh خودمان را پیادهسازی کنیم
38
00:01:05,040 –> 00:01:05,680
39
00:01:05,680 –> 00:01:08,159
که در
40
00:01:08,159 –> 00:01:10,320
نهایت به n ورود به سیستم تبدیل میشود.
41
00:01:10,320 –> 00:01:10,880
42
00:01:10,880 –> 00:01:13,840
یا فکر میکنم مرتبسازی سریع نیز همان
43
00:01:13,840 –> 00:01:15,840
پیچیدگی زمانی متوسط را دارد، بن
44
00:01:15,840 –> 00:01:17,840
براین میتوانیم مرتبسازی خودمان را پیادهسازی کنیم و س
45
00:01:17,840 –> 00:01:19,520
س آن را در زمان n log n ان
46
00:01:19,520 –> 00:01:22,080
ام دهیم، اما میتوانیم ببینیم که این مش
47
00:01:22,080 –> 00:01:22,960
ل کمی سا
48
00:01:22,960 –> 00:01:24,560
هتر از یک مشکل مرتبسازی معمولی اس
49
00:01:24,560 –> 00:01:26,000
، زیرا ما
50
00:01:26,000 –> 00:01:28,720
فقط سه مقدار در آرایه داده شده است، فقط
51
00:01:28,720 –> 00:01:30,720
سه مقدار بالقوه است،
52
00:01:30,720 –> 00:01:33,040
بنابراین اگر در مورد الگوریتم
53
00:01:33,040 –> 00:01:34,159
54
00:01:34,159 –> 00:01:36,479
مرتب سازی سطلی شنیده اید، بلافاصله فکر می کنید
55
00:01:36,479 –> 00:01:38,159
بله، این مشکل را می توان
56
00:01:38,159 –> 00:01:41,439
با مرتب سازی سطلی در زمان خطی حل کرد، ما می توانیم
57
00:01:41,439 –> 00:01:44,079
این آرایه ورودی را مرتب کنیم. در زمان خطی
58
00:01:44,079 –> 00:01:46,159
دلیل این است که ما می دانیم که
59
00:01:46,159 –> 00:01:47,520
فقط سه
60
00:01:47,520 –> 00:01:50,320
سطل مختلف وجود دارد اگر مقادیر از صفر
61
00:01:50,320 –> 00:01:50,799
62
00:01:50,799 –> 00:01:52,399
تا n در بازه زمانی n باشند که در آن n می تواند به
63
00:01:52,399 –> 00:01:54,399
طور دلخواه مقدار زیادی
64
00:01:54,399 –> 00:01:56,320
باشد، البته ما نمی توانیم این کار را انجام دهیم. s در o
65
00:01:56,320 –> 00:01:58,159
از n زمان اما می دانیم که مقادیر
66
00:01:58,159 –> 00:01:59,119
فقط بین
67
00:01:59,119 –> 00:02:01,840
صفر و دو خواهند بود، اکنون می توانیم مرتب سازی سطلی را انجام دهیم
68
00:02:01,840 –> 00:02:02,240
69
00:02:02,240 –> 00:02:04,640
و چگونه می خواهیم
70
00:02:04,640 –> 00:02:05,439
از آن برای
71
00:02:05,439 –> 00:02:07,600
حل این مشکل در زمان خطی استفاده
72
00:02:07,600 –> 00:02:09,758
کنیم. برای اینکه بگوییم ما سه سطل داریم،
73
00:02:09,758 –> 00:02:12,720
یک سطل صفر، یک سطل و یک
74
00:02:12,720 –> 00:02:13,360
سطل
75
00:02:13,360 –> 00:02:15,360
و برای هر یک از این سطل ها به
76
00:02:15,360 –> 00:02:16,800
سادگی آرایه ورودی را اسکن می کنیم
77
00:02:16,800 –> 00:02:19,120
و شمارش می کنیم که چند عدد از هر یک
78
00:02:19,120 –> 00:02:20,480
از این مقادیر
79
00:02:20,480 –> 00:02:22,560
در آرایه رخ می دهد، بنابراین بله
80
00:02:22,560 –> 00:02:24,000
به حافظه اضافی نیاز خواهد داشت،
81
00:02:24,000 –> 00:02:25,360
اما واقعاً این فقط خواهد بود
82
00:02:25,360 –> 00:02:27,280
، فرض کنید یک نقشه هش یا
83
00:02:27,280 –> 00:02:30,000
آرایه ای با اندازه سه درست است، این فقط
84
00:02:30,000 –> 00:02:31,360
یک آرایه با اندازه
85
00:02:31,360 –> 00:02:33,760
سه خواهد بود، بنابراین ما تعداد دو را می شماریم
86
00:02:33,760 –> 00:02:35,360
تا یک دو واحد داشته باشیم. تا
87
00:02:35,360 –> 00:02:37,760
اینجا یک صفر واحد داریم، دو تا دیگر داریم،
88
00:02:37,760 –> 00:02:39,040
بنابراین
89
00:02:39,040 –> 00:02:42,160
فرض کنید تعداد دوها دو است، سپس دو
90
00:02:42,160 –> 00:02:42,480
یک به دست
91
00:02:42,480 –> 00:02:44,959
می آوریم، بله، دو یک داریم و
92
00:02:44,959 –> 00:02:46,400
سپس یک صفر دیگر می گیریم، بنابراین
93
00:02:46,400 –> 00:02:49,519
در واقع ما دو تا از هر یک از این
94
00:02:49,519 –> 00:02:52,000
مقادیر را داریم که اکنون می خواهیم برای ساخت آرایه خروجی
95
00:02:52,000 –> 00:02:52,800
اما
96
00:02:52,800 –> 00:02:54,640
ما قرار نیست
97
00:02:54,640 –> 00:02:56,239
آرایه خروجی جداگانه ای بسازیم که آنها می خواهند برای انجام این کار
98
00:02:56,239 –> 00:02:59,120
در جای خود، میتوانیم بالا را ببینیم، بنابراین کاری که
99
00:02:59,120 –> 00:03:00,640
میخواهیم انجام دهیم این است که چون
100
00:03:00,640 –> 00:03:02,560
میدانیم دو صفر داریم، اجازه دهید در
101
00:03:02,560 –> 00:03:03,120
102
00:03:03,120 –> 00:03:06,400
ابتدا برویم دو مقدار اول اینها را خط بزنیم و
103
00:03:06,400 –> 00:03:07,040
آنها را با
104
00:03:07,040 –> 00:03:10,400
دو صفر درست مانند خروجی جایگزین کنیم.
105
00:03:10,400 –> 00:03:12,159
دوباره آرایه را انجام می دهیم، بنابراین اکنون با
106
00:03:12,159 –> 00:03:13,760
قسمت صفرها به سمت راست تمام شدیم، دو
107
00:03:13,760 –> 00:03:15,360
صفر گرفتیم و آنها را در ابتدا قرار
108
00:03:15,360 –> 00:03:18,159
دادیم و بعد می دانیم که یک ها درست بعد از صفرها می روند،
109
00:03:18,159 –> 00:03:19,200
بنابراین ما می خواهیم
110
00:03:19,200 –> 00:03:22,000
این دو یک را که در عرض این دو قرار داده اند، برداریم.
111
00:03:22,000 –> 00:03:23,360
درست است
112
00:03:23,360 –> 00:03:26,319
و سپس دو یک را درست بعد از
113
00:03:26,319 –> 00:03:26,879
صفرها اضافه می کنیم
114
00:03:26,879 –> 00:03:28,560
و دقیقاً همان چیزی که با
115
00:03:28,560 –> 00:03:30,159
دوتاهای سمت راست وجود دارد، دو تا داریم،
116
00:03:30,159 –> 00:03:31,680
بنابراین قسمت باقی
117
00:03:31,680 –> 00:03:34,000
مانده از آرایه را تشکیل می دهد، می توانیم آن
118
00:03:34,000 –> 00:03:35,680
دو را در انتهای سمت راست
119
00:03:35,680 –> 00:03:38,000
قرار دهیم تا بیش از نوشتن این حافظه، بنابراین
120
00:03:38,000 –> 00:03:39,519
ما در واقع از حافظه اضافی یا
121
00:03:39,519 –> 00:03:40,879
هر چیز دیگری استفاده نمی کنیم، بنابراین این یک
122
00:03:40,879 –> 00:03:43,760
راه حل n زمان و o از یک راه حل است،
123
00:03:43,760 –> 00:03:44,239
این
124
00:03:44,239 –> 00:03:47,200
راه حل از نظر پیچیدگی تقریباً
125
00:03:47,200 –> 00:03:47,519
به همان اندازه
126
00:03:47,519 –> 00:03:49,599
خوب است، اما این یک
127
00:03:49,599 –> 00:03:51,120
راه حل بی اهمیت است که من در واقع قصد دارم
128
00:03:51,120 –> 00:03:52,720
کمی بیشتر به شما نشان دهم
129
00:03:52,720 –> 00:03:55,680
راه حل سخت که در واقع همان
130
00:03:55,680 –> 00:03:57,439
راه حل یک گذر است که می توانیم
131
00:03:57,439 –> 00:03:59,280
در این مورد ببینیم، در واقع باید یک
132
00:03:59,280 –> 00:04:00,959
بار کل آرایه ورودی را
133
00:04:00,959 –> 00:04:03,760
برای ایجاد این سطل ها یک بار مرور کنیم و
134
00:04:03,760 –> 00:04:05,599
سپس می خواهیم آرایه خروجی را بسازیم،
135
00:04:05,599 –> 00:04:07,599
اما از نظر فنی می توانیم این کار را
136
00:04:07,599 –> 00:04:09,840
با یک واحد انجام دهیم. پاس که
137
00:04:09,840 –> 00:04:10,799
راه حل کمی سخت تر است،
138
00:04:10,799 –> 00:04:12,239
این چیزی است که من امروز به شما نشان خواهم داد
139
00:04:12,239 –> 00:04:14,239
و این چیزی است که ما قصد داریم آن را کدگذاری کنیم،
140
00:04:14,239 –> 00:04:16,478
بنابراین قبل از اینکه راه حل را به شما نشان دهم
141
00:04:16,478 –> 00:04:18,079
اولین سوال من از شما
142
00:04:18,079 –> 00:04:21,040
این است که
143
00:04:21,040 –> 00:04:22,000
144
00:04:22,000 –> 00:04:25,280
آیا به طور خاص در مورد الگوریتم مرتب سازی سریع شنیده اید. شما بخشی از
145
00:04:25,280 –> 00:04:28,560
مرتب سازی سریع
146
00:04:28,560 –> 00:04:31,040
را می دانید که به الگوریتم پارتیشن نیاز دارد آیا می دانید چگونه یک آرایه را پارتیشن بندی
147
00:04:31,040 –> 00:04:31,919
کنید
148
00:04:31,919 –> 00:04:34,240
به عنوان مثال می دانید بیایید فرض کنیم
149
00:04:34,240 –> 00:04:35,280
یک آرایه
150
00:04:35,280 –> 00:04:38,560
داشتیم و می خواستیم هر مقدار n
151
00:04:38,560 –> 00:04:40,080
که کمتر از پنج
152
00:04:40,080 –> 00:04:43,919
باشد در قسمت سمت چپ قرار گیرد. آرایه
153
00:04:43,919 –> 00:04:46,000
و اگر این کار را انجام دادیم، فرض کنید
154
00:04:46,000 –> 00:04:47,440
آرایهای داشتیم مانند یک
155
00:04:47,440 –> 00:04:50,479
دو شش هفت درست این مقادیر را
156
00:04:50,479 –> 00:04:52,000
میخواهیم مقادیری که
157
00:04:52,000 –> 00:04:55,120
کمتر از پنج هستند در قسمت سمت چپ
158
00:04:55,120 –> 00:04:56,800
آرایه قرار گیرند.
159
00:04:56,800 –> 00:04:58,479
یعنی چه خوب یعنی ما
160
00:04:58,479 –> 00:05:00,720
این مقادیر را گرفتیم آنها را در قسمت سمت چپ
161
00:05:00,720 –> 00:05:02,800
آرایه قرار دادیم اگر این کار را
162
00:05:02,800 –> 00:05:03,280
با
163
00:05:03,280 –> 00:05:06,320
جابجایی مقادیر در اطراف انجام دادیم اگر این دو
164
00:05:06,320 –> 00:05:07,759
مقدار اینجا هستند
165
00:05:07,759 –> 00:05:09,280
و فرض کنید اندازه آرایه
166
00:05:09,280 –> 00:05:12,080
چهار مقدار است این چهار مقدار اصلی مقادیر را
167
00:05:12,080 –> 00:05:13,680
اگر اینها را بگیریم و در
168
00:05:13,680 –> 00:05:16,400
سمت چپ قرار دهیم به این معنی است که به طور پیش فرض
169
00:05:16,400 –> 00:05:18,880
این دو مقدار که بزرگتر
170
00:05:18,880 –> 00:05:20,479
یا مساوی پنج
171
00:05:20,479 –> 00:05:22,479
هستند در سمت راست در
172
00:05:22,479 –> 00:05:24,320
قسمت سمت راست آرایه به
173
00:05:24,320 –> 00:05:25,840
طور پیش فرض سمت راست قرار می گیرند که به آن
174
00:05:25,840 –> 00:05:28,479
پارتیشن بندی یک آرایه می گویند. همان
175
00:05:28,479 –> 00:05:29,759
ایدهای که در
176
00:05:29,759 –> 00:05:32,160
اینجا استفاده میکنیم، بنابراین به یاد داشته باشید که میخواهیم صفرها
177
00:05:32,160 –> 00:05:33,680
در ابتدا چگونه بروند، ما
178
00:05:33,680 –> 00:05:35,280
میخواهیم صفرها در وسط و دوها
179
00:05:35,280 –> 00:05:35,840
در آخر قرار گیرند،
180
00:05:35,840 –> 00:05:37,840
بنابراین بیایید آرایه را با استفاده از
181
00:05:37,840 –> 00:05:39,840
همان ایدهای که داریم پارتیشن بندی کنیم. فرض کنید از
182
00:05:39,840 –> 00:05:41,280
هر مقدار
183
00:05:41,280 –> 00:05:43,520
در آرایه به سمت راست در آرایه مثال عبور
184
00:05:43,520 –> 00:05:46,240
می کنیم و هر بار که
185
00:05:46,240 –> 00:05:47,840
به روشی که این الگوریتم پارتیشن
186
00:05:47,840 –> 00:05:50,800
کار می کند یک صفر دریافت می کنیم، یک اشاره گر در سمت چپ سمت
187
00:05:50,800 –> 00:05:53,120
راست داریم که اساساً ما این را می
188
00:05:53,120 –> 00:05:54,320
نامیم اجازه دهید sa y نشانگر چپ به سمت راست
189
00:05:54,320 –> 00:05:55,520
مشخص شده است
190
00:05:55,520 –> 00:05:57,039
که از سمت چپ شروع می شود، ما
191
00:05:57,039 –> 00:05:58,560
یک نشانگر i دیگر
192
00:05:58,560 –> 00:05:59,840
خواهیم داشت که فقط در کل آرایه اجرا می شود
193
00:05:59,840 –> 00:06:00,960
194
00:06:00,960 –> 00:06:03,840
هر زمان که مقدار 0 را دریافت می کنیم و آن مقدار 0 را می گیریم.
195
00:06:03,840 –> 00:06:05,600
بیایید بگوییم که
196
00:06:05,600 –> 00:06:06,240
از اینجاست
197
00:06:06,240 –> 00:06:08,639
که ما آن مقدار صفر را می گیریم
198
00:06:08,639 –> 00:06:10,720
آن را با مقداری که در اینجا است عوض
199
00:06:10,720 –> 00:06:12,880
کنید، مقداری که در اینجا است قرار
200
00:06:12,880 –> 00:06:14,800
نیست یک صفر
201
00:06:14,800 –> 00:06:17,280
باشد، بنابراین هر چه که باشد شاید
202
00:06:17,280 –> 00:06:18,800
یک باشد شاید یک در هر دو صورت،
203
00:06:18,800 –> 00:06:20,000
آن را عوض می کنیم، آن را در اینجا قرار می دهیم
204
00:06:20,000 –> 00:06:22,160
و سپس آن صفر به
205
00:06:22,160 –> 00:06:23,360
اینجا می رسد، بنابراین
206
00:06:23,360 –> 00:06:25,360
وقتی یک مقدار صفر در اینجا داشتیم،
207
00:06:25,360 –> 00:06:26,880
می توانیم نشانگر سمت چپ خود را
208
00:06:26,880 –> 00:06:28,880
برداریم و سپس آن را به اینجا به سمت راست منتقل کنیم،
209
00:06:28,880 –> 00:06:30,400
زیرا در این صورت می دانیم که دفعه بعد
210
00:06:30,400 –> 00:06:32,880
که با یک صفر مواجه شدیم، میخواهیم آن را در
211
00:06:32,880 –> 00:06:35,440
این موقعیت قرار دهیم، البته چه اتفاقی میافتد
212
00:06:35,440 –> 00:06:37,600
اگر اولین مقدار به خودی
213
00:06:37,600 –> 00:06:39,520
خود صفر باشد، در نهایت
214
00:06:39,520 –> 00:06:41,680
آن را با خودش عوض میکنیم که کاملاً خوب است
215
00:06:41,680 –> 00:06:42,800
و سپس میخواهیم نشانگر سمت چپ ما را بگیرید
216
00:06:42,800 –> 00:06:44,800
و سپس آن را به هر حال به اینجا تغییر دهید
217
00:06:44,800 –> 00:06:46,800
در هر دو مورد
218
00:06:46,800 –> 00:06:48,880
جواب میدهد، بنابراین فرض کنید این کار را انجام میدهیم، فرض
219
00:06:48,880 –> 00:06:50,240
کنید کل آرایه را
220
00:06:50,240 –> 00:06:52,240
که پونه کوهی ما شبیه به چه شکلی است را طی
221
00:06:52,240 –> 00:06:54,319
میکنیم، در این مثال، دو
222
00:06:54,319 –> 00:06:56,319
صفر در ابتدا خواهیم داشت، اما پس از
223
00:06:56,319 –> 00:06:57,919
آن، بخش باقیمانده
224
00:06:57,919 –> 00:07:00,160
را خواهیم داشت. برخی از یک ها و دوها به
225
00:07:00,160 –> 00:07:01,759
ترتیب دلخواه درست ما
226
00:07:01,759 –> 00:07:03,360
در مورد ترتیب آنها
227
00:07:03,360 –> 00:07:05,360
نمی دانیم، بنابراین آرایه را با موفقیت پارتیشن بندی
228
00:07:05,360 –> 00:07:06,800
کردیم و تمام صفرها را در ابتدا
229
00:07:06,800 –> 00:07:07,680
درست کردیم، این
230
00:07:07,680 –> 00:07:10,479
یک پارتیشن است اکنون ما هنوز باید
231
00:07:10,479 –> 00:07:12,240
پارتیشن را به این سمت که نیاز داریم دوست داشته باشیم. قرار دادن
232
00:07:12,240 –> 00:07:12,960
هر دوی
233
00:07:12,960 –> 00:07:15,280
اینها در ابتدا و سپس گرفتن
234
00:07:15,280 –> 00:07:16,160
همه دو
235
00:07:16,160 –> 00:07:17,919
و در انتهای درست قرار دادن آنها، اما
236
00:07:17,919 –> 00:07:20,080
به یاد داشته باشید که اگر این کار را به این
237
00:07:20,080 –> 00:07:22,639
صورت انجام دهیم، پس دو پاس را درست انجام می دهیم،
238
00:07:22,639 –> 00:07:24,479
از نظر فنی مجاز است، اما هدف ما
239
00:07:24,479 –> 00:07:26,560
انجام این کار در یک پاس تک،
240
00:07:26,560 –> 00:07:28,720
بنابراین بیایید سعی کنیم این ایده پارتیشن را اصلاح
241
00:07:28,720 –> 00:07:30,240
242
00:07:30,240 –> 00:07:33,199
کنیم که چگونه همه صفرها را
243
00:07:33,199 –> 00:07:33,840
244
00:07:33,840 –> 00:07:36,000
با استفاده از اشاره گر چپ خود در اینجا قرار دهیم، اما چرا
245
00:07:36,000 –> 00:07:37,599
یک اشاره گر دوم
246
00:07:37,599 –> 00:07:39,360
که همیشه در سمت راست خواهد بود
247
00:07:39,360 –> 00:07:40,639
نداشته باشیم، آن را نشانگر سمت راست خود بنامیم
248
00:07:40,639 –> 00:07:43,520
و سپس هر زمان که با یک 2
249
00:07:43,520 –> 00:07:44,000
250
00:07:44,000 –> 00:07:46,319
روبرو شدیم، هر زمان که با یک صفر روبرو شدیم، آن دو را در اینجا
251
00:07:46,319 –> 00:07:48,319
قرار می دهیم، صفر را در اینجا قرار می
252
00:07:48,319 –> 00:07:49,919
دهیم، نشانگر چپ خود را بر این اساس جابه جا می کنیم،
253
00:07:49,919 –> 00:07:51,919
اگر در نهایت دو را در اینجا قرار دهیم،
254
00:07:51,919 –> 00:07:53,680
نشانگر سمت راست خود را می گیریم و آن را
255
00:07:53,680 –> 00:07:55,919
بر اساس آن جابجا می کنیم. موقعیت بعدی،
256
00:07:55,919 –> 00:07:58,160
بنابراین این ایده قطعاً
257
00:07:58,160 –> 00:07:59,280
کار میکند، اما فقط
258
00:07:59,280 –> 00:08:01,280
یک مورد لبه وجود دارد که باید نگران آن باشیم و
259
00:08:01,280 –> 00:08:03,360
اجازه دهید فقط آن لبه را به شما نشان
260
00:08:03,360 –> 00:08:06,160
دهم، فرض کنید به سناریوی تصادفی رسیدهایم
261
00:08:06,160 –> 00:08:06,720
که
262
00:08:06,720 –> 00:08:09,759
نشانگر سمت چپ ما در اینجا
263
00:08:09,759 –> 00:08:11,919
قرار خواهد گرفت. به ما که همه چیز در
264
00:08:11,919 –> 00:08:14,560
سمت چپ اینجا قبلاً یک صفر به راست
265
00:08:14,560 –> 00:08:15,919
است، البته این چیزی است که نشانگر چپ
266
00:08:15,919 –> 00:08:17,199
به ما می گوید اگر اینجا تمام شود، به این
267
00:08:17,199 –> 00