در این مطلب، ویدئو روبان برش | پایتون | LEETCODE # 1891 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:22:42
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,480 –> 00:00:02,399
سلام و خوش آمدید به
2
00:00:02,399 –> 00:00:03,919
کانال یوتیوب cracking fang امروز ما
3
00:00:03,919 –> 00:00:07,759
4
00:00:07,759 –> 00:00:09,840
5
00:00:09,840 –> 00:00:11,440
می خواهیم قبل از شروع این مشکل مشکل لید کد 1891
6
00:00:11,440 –> 00:00:13,120
7
00:00:13,120 –> 00:00:15,839
8
00:00:15,839 –> 00:00:17,520
را حل کنیم.
9
00:00:17,520 –> 00:00:20,480
ظرفیت ارسال بستهها در عرض d روز وجود
10
00:00:20,480 –> 00:00:22,400
داشت، تنظیمات در واقع بسیار
11
00:00:22,400 –> 00:00:25,119
بسیار مشابه خواهد بود، بنابراین اگر آن
12
00:00:25,119 –> 00:00:26,880
ویدیو را ندیدهاید، به شدت توصیه میکنم
13
00:00:26,880 –> 00:00:28,880
ابتدا آن را تماشا کنید زیرا بسیار سادهتر از
14
00:00:28,880 –> 00:00:30,720
این است، این یکی کمی
15
00:00:30,720 –> 00:00:33,360
آزاردهندهتر است. راه اندازی سخت تر و
16
00:00:33,360 –> 00:00:35,120
دانستن نحوه حل سوال دیگر
17
00:00:35,120 –> 00:00:36,399
به شما
18
00:00:36,399 –> 00:00:38,719
کمک زیادی در این سوال می کند، بنابراین اگر
19
00:00:38,719 –> 00:00:40,559
ویدیو را متوقف نکرده اید، اکنون به تماشای
20
00:00:40,559 –> 00:00:43,120
آن ویدیو بروید و سپس این
21
00:00:43,120 –> 00:00:44,879
سوال را انجام دهید در غیر این صورت این یکی
22
00:00:44,879 –> 00:00:47,760
کمی سخت تر است. سر خود را به اطراف بپیچید،
23
00:00:47,760 –> 00:00:49,440
اما اساساً همان
24
00:00:49,440 –> 00:00:52,160
چیزی است که گفته می شود بیایید اکنون
25
00:00:52,160 –> 00:00:53,760
سؤال را بخوانیم به
26
00:00:53,760 –> 00:00:55,600
شما یک نوار آرایه عدد صحیح داده می شود
27
00:00:55,600 –> 00:00:57,360
که در آن روبان های i نشان دهنده
28
00:00:57,360 –> 00:00:59,920
طول نوار ith an است. d یک عدد صحیح k شما
29
00:00:59,920 –> 00:01:02,399
می توانید هر یک از نوارها را به
30
00:01:02,399 –> 00:01:04,479
تعداد قطعاتی با طول عدد صحیح مثبت
31
00:01:04,479 –> 00:01:07,119
برش دهید یا اصلاً هیچ
32
00:01:07,119 –> 00:01:08,960
33
00:01:08,960 –> 00:01:11,439
34
00:01:11,439 –> 00:01:14,080
برشی انجام ندهید، به عنوان مثال اگر نواری به طول 4 دارید، می توانید نوار طول چهار را نگه دارید، آن را به یک روبان برش دهید.
35
00:01:14,080 –> 00:01:16,159
طول سه و یک روبان به
36
00:01:16,159 –> 00:01:18,720
طول یکی آن را به دو روبان به
37
00:01:18,720 –> 00:01:20,960
طول دو برش دهید به یک روبان به
38
00:01:20,960 –> 00:01:23,600
طول دو و دو روبان به طول یک
39
00:01:23,600 –> 00:01:25,840
یا می توانید آن را به چهار روبان به
40
00:01:25,840 –> 00:01:28,400
طول یک ببرید هدف شما این است که نوارهای k به دست آورید
41
00:01:28,400 –> 00:01:30,799
. با همان طول عدد صحیح مثبت،
42
00:01:30,799 –> 00:01:33,200
شما مجاز هستید
43
00:01:33,200 –> 00:01:36,400
که در نتیجه برش، هر نوار اضافی
44
00:01:36,400 –> 00:01:39,040
را دور بریزید، حداکثر
45
00:01:39,040 –> 00:01:41,200
طول عدد صحیح مثبت ممکن را که می توانید k
46
00:01:41,200 –> 00:01:44,799
روبان به دست آورید یا 0 را اگر نمی توانید k
47
00:01:44,799 –> 00:01:47,200
روبان با طول یکسان بدست آورید، برگردانید.
48
00:01:47,200 –> 00:01:49,600
یک مثال در اینجا
49
00:01:49,600 –> 00:01:52,159
و به ما روبان هایی با طول 9 7
50
00:01:52,159 –> 00:01:54,880
و 5 داده می شود و به ما گفته می شود که k برابر با
51
00:01:54,880 –> 00:01:57,119
سه پیدا کنیم سپس خروجی ما پنج خواهد شد
52
00:01:57,119 –> 00:01:58,719
و دلیل این امر این است که می توانیم
53
00:01:58,719 –> 00:02:00,719
54
00:02:00,719 –> 00:02:03,600
نه را به دو روبان به طول یکی برش دهیم. پنج
55
00:02:03,600 –> 00:02:05,840
و یکی از طول چهار سپس میتوانیم
56
00:02:05,840 –> 00:02:08,239
روبان دوم را به دو نوار یکی
57
00:02:08,239 –> 00:02:10,639
از طول پنج و یکی از طول دو برش دهیم و
58
00:02:10,639 –> 00:02:12,640
سپس میتوانیم روبان سوم پنج را
59
00:02:12,640 –> 00:02:14,239
همانطور که هست نگه داریم و سپس سه
60
00:02:14,239 –> 00:02:16,160
نوار به طول پنج خواهیم
61
00:02:16,160 –> 00:02:18,720
داشت و این طولانیترین خواهد بود. قطع کنید که ما میتوانیم
62
00:02:18,720 –> 00:02:22,239
ظرفیت بسیار زیادی برای ارسال بستهها
63
00:02:22,239 –> 00:02:24,000
در مدت دو روز
64
00:02:24,000 –> 00:02:27,120
بدست آوریم که چگونه آنها واقعاً این پنج را به دست میآورند.
65
00:02:27,120 –> 00:02:28,319
66
00:02:28,319 –> 00:02:29,760
67
00:02:29,760 –> 00:02:32,560
68
00:02:32,560 –> 00:02:34,959
در دنیا آیا شما واقعاً این را استخراج میکنید
69
00:02:34,959 –> 00:02:36,400
و اینجاست که این مشکل
70
00:02:36,400 –> 00:02:38,080
کمی آزاردهنده است،
71
00:02:38,080 –> 00:02:38,959
بنابراین
72
00:02:38,959 –> 00:02:40,800
بیایید اکنون به
73
00:02:40,800 –> 00:02:42,879
توضیح واقعی نحوه تنظیم این
74
00:02:42,879 –> 00:02:46,400
مشکل و نحوه حل آن بپردازیم، بنابراین بیایید این کار را
75
00:02:46,400 –> 00:02:49,760
خوب انجام دهیم تا سؤال را بخوانیم. سریع و
76
00:02:49,760 –> 00:02:52,319
ما به یک مثال نگاه کردیم اما
77
00:02:52,319 –> 00:02:54,160
از مثال خیلی واضح
78
00:02:54,160 –> 00:02:56,160
79
00:02:56,160 –> 00:02:58,080
80
00:02:58,080 –> 00:03:00,640
81
00:03:00,640 –> 00:03:02,159
نبود که آنها واقعاً چگونه پاسخ را دریافت کردند. با
82
00:03:02,159 –> 00:03:04,239
آن راه حل به نظر می رسد l به عنوان مثال،
83
00:03:04,239 –> 00:03:06,720
از هوای رقیق بیرون کشیده شده است، شبیه به
84
00:03:06,720 –> 00:03:09,040
روشی که ظرفیت ارسال بسته ها را
85
00:03:09,040 –> 00:03:12,080
در d-روز حل کردیم، بیایید کار کنیم و سعی
86
00:03:12,080 –> 00:03:14,400
کنیم راه حلی بصری برای این
87
00:03:14,400 –> 00:03:16,159
مشکل پیدا کنیم،
88
00:03:16,159 –> 00:03:18,720
بنابراین اگر در مورد آن فکر کنیم
89
00:03:18,720 –> 00:03:21,280
کوچکترین طول نواری که می توانیم داشته باشیم چیست.
90
00:03:21,280 –> 00:03:23,120
وقتی یک برش
91
00:03:23,120 –> 00:03:25,440
خوب درست می کنید نمی تواند صفر باشد زیرا نمی توانیم
92
00:03:25,440 –> 00:03:27,040
چیزی را برش دهیم و سپس یک روبان با
93
00:03:27,040 –> 00:03:29,280
طول صفر درست کنیم که امکان پذیر نیست
94
00:03:29,280 –> 00:03:31,120
یا چیزی را که
95
00:03:31,120 –> 00:03:33,440
طول آن به همان اندازه بماند نمی بریم یا باید
96
00:03:33,440 –> 00:03:35,920
بسازیم. برشی که
97
00:03:35,920 –> 00:03:39,120
در آن بسته به اندازه برش، دو روبان دریافت می کنیم، بنابراین
98
00:03:39,120 –> 00:03:41,760
منطقی است که کوچکترین
99
00:03:41,760 –> 00:03:44,159
اندازه روبانی که می توانیم برش
100
00:03:44,159 –> 00:03:45,440
دهیم، می توانیم چیزی را برش دهیم و یک
101
00:03:45,440 –> 00:03:47,680
روبان دریافت کنیم، یکی درست خواهد بود،
102
00:03:47,680 –> 00:03:49,440
می دانید اگر 9 عددی را که می توانستیم برش دهیم، قطع کنیم.
103
00:03:49,440 –> 00:03:51,120
آن را به طول هشت به این ترتیب
104
00:03:51,120 –> 00:03:53,599
ما یکی از طول هشت و یکی از
105
00:03:53,599 –> 00:03:55,280
یک را دریافت می کنیم، بنابراین
106
00:03:55,280 –> 00:03:57,439
شما می دانید که مرز چپ ما
107
00:03:57,439 –> 00:03:59,280
یک خواهد بود،
108
00:03:59,280 –> 00:04:01,680
خوب مرز راست ما چیست،
109
00:04:01,680 –> 00:04:03,680
خوب
110
00:04:03,680 –> 00:04:07,120
بگوییم که ما 10 را به عنوان مرز راست خود انتخاب کردیم،
111
00:04:07,120 –> 00:04:08,480
آیا می توانیم 9 را قطع کنیم.
112
00:04:08,480 –> 00:04:11,040
در 10
113
00:04:11,040 –> 00:04:13,439
نه ما نتوانستیم این کار را برای 7
114
00:04:13,439 –> 00:04:15,519
انجام نمی دهیم و ما نمی توانیم آن را برای پنج انجام دهیم،
115
00:04:15,519 –> 00:04:17,120
آنچه در نهایت اتفاق می افتد این است که اگر
116
00:04:17,120 –> 00:04:20,079
ده را انتخاب کنیم این است که به سادگی
117
00:04:20,079 –> 00:04:21,759
برش نمی
118
00:04:21,759 –> 00:04:23,440
کنیم اگر اگر از
119
00:04:23,440 –> 00:04:25,520
طول فعلی بیشتر باشد، نمی توانیم هر
120
00:04:25,520 –> 00:04:28,400
برشی انجام دهید، بنابراین معنی آن این است که
121
00:04:28,400 –> 00:04:31,280
هیچ فایده ای برای انتخاب حداکثر طول برش
122
00:04:31,280 –> 00:04:32,320
123
00:04:32,320 –> 00:04:34,800
بزرگتر از هر چیزی وجود ندارد که حداکثر آرایه ما
124
00:04:34,800 –> 00:04:36,000
125
00:04:36,000 –> 00:04:37,680
چیزی بیشتر از این باشد که می دانید ما
126
00:04:37,680 –> 00:04:40,240
می توانیم 10 میلیارد و 100 میلیون
127
00:04:40,240 –> 00:04:43,280
را انتخاب کنیم، مهم نیست که ما فقط همیشه این کار را می کنیم.
128
00:04:43,280 –> 00:04:45,360
فقط آن را با همان طول نگه دارید
129
00:04:45,360 –> 00:04:47,759
زیرا نمی توانیم آن برش را انجام دهیم،
130
00:04:47,759 –> 00:04:50,400
بنابراین هر زمان که طول روبان همان برشی است
131
00:04:50,400 –> 00:04:51,919
که می خواهیم انجام دهیم در واقع بزرگتر
132
00:04:51,919 –> 00:04:53,600
از روبان فعلی است، به این معنی که ما
133
00:04:53,600 –> 00:04:55,199
فقط باید روبان را به همان
134
00:04:55,199 –> 00:04:57,199
اندازه نگه داریم. نمی توان چیزی به
135
00:04:57,199 –> 00:04:58,479
طول پنج
136
00:04:58,479 –> 00:05:00,720
در هشت را درست برش داد، فقط ممکن نیست ما
137
00:05:00,720 –> 00:05:02,560
بتوانیم این کار را برای 9 انجام دهیم، اما نه برای پنج،
138
00:05:02,560 –> 00:05:05,280
بنابراین نتیجه می شود که مرز سمت راست
139
00:05:05,280 –> 00:05:08,080
ما هرچه باشد حداکثر
140
00:05:08,080 –> 00:05:10,880
روبان های
141
00:05:10,880 –> 00:05:14,479
ما درست است. حداکثر به این معنی که شما می
142
00:05:14,479 –> 00:05:16,960
دانید برای این مشکل ما تمام
143
00:05:16,960 –> 00:05:18,639
طول های برش بالقوه را خواهیم
144
00:05:18,639 –> 00:05:20,240
145
00:05:20,240 –> 00:05:23,120
داشت که تا 9 نقطه یک دو سه نقطه است،
146
00:05:23,120 –> 00:05:25,280
بنابراین این
147
00:05:25,280 –> 00:05:28,560
طول های برش بالقوه ما هستند که می توانیم انتخاب کنیم
148
00:05:28,560 –> 00:05:29,919
و اساساً
149
00:05:29,919 –> 00:05:32,400
شبیه به شما می دانید که مشکل ما چیست
150
00:05:32,400 –> 00:05:34,880
بستههای حمل و نقل ما اکنون یک
151
00:05:34,880 –> 00:05:37,600
محدوده سفارشدادهشده داریم که هر بار یکبار افزایش مییابد،
152
00:05:37,600 –> 00:05:40,400
به این معنی که اکنون این محدوده
153
00:05:40,400 –> 00:05:41,759
مرتب
154
00:05:41,759 –> 00:05:44,000
شده است، ما میتوانیم این آرایه را از چپ
155
00:05:44,000 –> 00:05:46,800
به راست بخزیم تا اساساً بگوییم خوب است،
156
00:05:46,800 –> 00:05:48,880
بیایید طول یک برش را امتحان
157
00:05:48,880 –> 00:05:50,400
کنیم، نوارهایی که میشناسید.
158
00:05:50,400 –> 00:05:53,120
حداکثر نوارهایی که می توانیم بدست آوریم چقدر است و می دانید
159
00:05:53,120 –> 00:05:55,840
این است که کمتر یا مساوی k
160
00:05:55,840 –> 00:05:58,639
خوب است بیایید 2 3 را امتحان کنیم
161
00:05:58,639 –> 00:06:01,039
اما به یاد داشته باشید که ما این محدوده مرتب شده را
162
00:06:01,039 –> 00:06:03,440
در اینجا داریم بنابراین می توانیم در واقع یک جستجوی دودویی انجام دهیم
163
00:06:03,440 –> 00:06:05,199
164
00:06:05,199 –> 00:06:07,280
و آنچه می خواهیم انجام دهیم اساساً
165
00:06:07,280 –> 00:06:10,160
فقط پیدا کردن است. طول روبانی که
166
00:06:10,160 –> 00:06:12,880
حدس میزنم
167
00:06:12,880 –> 00:06:15,360
حداکثر طول اعداد صحیح ممکن را به ما میدهد تا
168
00:06:15,360 –> 00:06:18,479
بتوانیم k نوارهای آن را بدست آوریم، بنابراین
169
00:06:18,479 –> 00:06:19,520
شما میدانید
170
00:06:19,520 –> 00:06:22,080
که چه کاری باید دوباره انجام دهیم، یکی خواهد بود
171
00:06:22,080 –> 00:06:23,680
که ما جستجوی دودویی را تنظیم میکنیم.
172
00:06:23,680 –> 00:06:25,199
173
00:06:25,199 –> 00:06:28,000
d سپس دو ما به نوعی تابع like can cut نیاز داریم
174
00:06:28,000 –> 00:06:29,840
175
00:06:29,840 –> 00:06:32,800
که به ما می گوید می دانید اگر از
176
00:06:32,800 –> 00:06:35,680
طول روبانی استفاده می کنیم که می دانید می دانید 2
177
00:06:35,680 –> 00:06:40,080
می توانیم حداقل k روبان را برای آن برش دهیم
178
00:06:40,080 –> 00:06:42,560
و کاری که می خواهیم انجام دهیم این است
179
00:06:42,560 –> 00:06:44,319
که می خواهیم ادامه دهیم.
180
00:06:44,319 –> 00:06:46,160
بدانید که
181
00:06:46,160 –> 00:06:48,880
اندازههای برش بزرگتر و بزرگتر را امتحان کنید تا زمانی که دیگر نتوانیم
182
00:06:48,880 –> 00:06:50,960
برش را انجام دهیم و سپس هر
183
00:06:50,960 –> 00:06:53,599
برش قبلی بود حداکثر خواهد بود
184
00:06:53,599 –> 00:06:55,520
زیرا میدانید که بگویید ما سعی میکنیم شما
185
00:06:55,520 –> 00:06:57,680
سه تا را بدانید و این کار میکند، اما بعد به
186
00:06:57,680 –> 00:07:00,400
چهار میرویم و نمیتوانیم آن اندازه برش را
187
00:07:00,400 –> 00:07:02,400
خوب بسازید، می دانید که هیچ فایده ای برای امتحان کردن
188
00:07:02,400 –> 00:07:04,080
هر چیزی در سمت راست چهار وجود ندارد زیرا اگر
189
00:07:04,080 –> 00:07:05,840
چهار کار نمی کند، اندازه های بزرگتر
190
00:07:05,840 –> 00:07:07,919
کار نمی کنند و سپس اگر بدانیم که چهار
191
00:07:07,919 –> 00:07:10,000
کار نمی کند، بهترین پاسخ
192
00:07:10,000 –> 00:07:12,319
این است قبل از آن باشید، بنابراین به این
193
00:07:12,319 –> 00:07:14,880
ترتیب میخواهیم جستجوی باینری خود را راهاندازی
194
00:07:14,880 –> 00:07:16,319
کنیم، کمی پیچیدهتر است، زیرا
195
00:07:16,319 –> 00:07:18,479
دوباره با این موارد کار میکنیم، مثل
196
00:07:18,479 –> 00:07:19,280
197
00:07:19,280 –> 00:07:20,960
اینکه شما فهرستی
198
00:07:20,960 –> 00:07:22,960
را برنمیگردانید و فقط به جستجوی باینری اجازه میدهید.
199
00:07:22,960 –> 00:07:24,639
بازی کردن و سپس برگرداندن یا
200
00:07:24,639 –> 00:07:28,160
چپ یا راست um شما می دانید poi به
201
00:07:28,160 –> 00:07:30,960
عنوان راه حل نهایی در اینجا وارد شوید، بنابراین اجازه دهید
202
00:07:30,960 –> 00:07:32,479
وارد ویرایشگر شویم و
203
00:07:32,479 –> 00:07:34,000
کد این مشکل را بنویسیم، زیرا با
204
00:07:34,000 –> 00:07:35,120
205
00:07:35,120 –> 00:07:36,560
دیدن نحوه
206
00:07:36,560 –> 00:07:38,000
پیاده سازی آن به جای
207
00:07:38,000 –> 00:07:40,000
ترسیم کردن آن، تجسم آن کمی آسان تر خواهد بود. من شما را دوباره در ویرایشگر می بینم
208
00:07:40,000 –> 00:07:42,400
، خوب، ما به ویرایشگر برگشتیم،
209
00:07:42,400 –> 00:07:45,280
بیایید کد را بنویسیم
210
00:07:45,280 –> 00:07:46,800
اولین کاری که می خواهیم انجام دهیم این است
211
00:07:46,800 –> 00:07:49,280
که مرزهای چپ و راست خود را
212
00:07:49,280 –> 00:07:51,120
برای جستجوی باینری تنظیم کنیم،
213
00:07:51,120 –> 00:07:53,280
بنابراین به یاد داشته باشید که کوچکترین طول ممکن است.
214
00:07:53,280 –> 00:07:55,840
می توانستیم
215
00:07:55,840 –> 00:07:57,520
طول یک راست باشد، ما می توانستیم
216
00:07:57,520 –> 00:07:59,120
چیزی را برش دهیم و کوچکترین طول روبانی
217
00:07:59,120 –> 00:08:00,960
که می توانستیم دریافت کنیم یک است،
218
00:08:00,960 –> 00:08:02,960
بنابراین می گوییم سمت چپ برابر است با یک
219
00:08:02,960 –> 00:08:06,000
و به یاد داشته باشید که حداکثر
220
00:08:06,000 –> 00:08:07,919
طول ممکن روبانی که می توانیم دریافت کنیم
221
00:08:07,919 –> 00:08:10,800
حداکثر خواهد بود. روبانهای ما،
222
00:08:10,800 –> 00:08:12,400
بنابراین این حالتی است که ما
223
00:08:12,400 –> 00:08:14,800
آن حداکثر روبان را برش نمیزنیم، بنابراین
224
00:08:14,800 –> 00:08:16,160
حداکثر روبانها هر چه باشد خواهد بود
225
00:08:16,160 –> 00:08:17,759
، بنابراین ما میخواهیم حداکثر
226
00:08:17,759 –> 00:08:19,599
روبانها را برای r بگوییم،
227
00:08:19,599 –> 00:08:21,440
اکنون زمان آن است که جستجوی دودویی خود را تنظیم کنیم.
228
00:08:21,440 –> 00:08:23,440
و دلیل w سلام من
229
00:08:23,440 –> 00:08:25,120
این مشکل را دوست ندارم به این دلیل است که راه اندازی
230
00:08:25,120 –> 00:08:27,840
جستجوی دودویی در اینجا در واقع خیلی
231
00:08:27,840 –> 00:08:31,520
بصری نیست، اوه ماهیت آن بسیار شبیه
232
00:08:31,520 –> 00:08:33,599
به نحوه حل ظرفیت ارسال
233
00:08:33,599 –> 00:08:36,479
بسته ها در d روز است،
234
00:08:36,479 –> 00:08:39,440
اما کمی متفاوت است و واقعاً کارساز نیست.
235
00:08:39,440 –> 00:08:42,719
درک کنید چرا مگر اینکه آن
236
00:08:42,719 –> 00:08:44,720
را ترسیم کنید و با مثالی کار کنید
237
00:08:44,720 –> 00:08:47,760
که همیشه شهودی ترین
238
00:08:47,760 –> 00:08:49,040
نیست، بنابراین کاری که من می خواهم انجام دهم این است
239
00:08:49,040 –> 00:08:50,399
که کد را بنویسم و سپس به
240
00:08:50,399 –> 00:08:52,399
مودار برگردیم و من
241
00:08:52,399 –> 00:08:54,640
راه حلی را توضیح خواهم داد که چرا می خواهیم
242
00:08:54,640 –> 00:08:56,640
این کار را به این صورت انجام دهیم، بنابراین اگر در ابتدا معنی نداشت، اشکالی ندارد
243
00:08:56,640 –> 00:08:58,320
244
00:08:58,320 –> 00:09:00,160
، مثال را مرور می کنیم و امیدوارم تا
245
00:09:00,160 –> 00:09:02,320
آن زمان وقتی آن را خط به خط ترسیم کنم
246
00:09:02,320 –> 00:09:04,080
این منطقی
247
00:09:04,080 –> 00:09:04,880
است،
248
00:09:04,880 –> 00:09:07,760
زیرا با استاندارد جستجوی دودویی ما
249
00:09:07,760 –> 00:09:08,959
در حالی که
250
00:09:08,959 –> 00:09:12,000
خیلی کم است انجام می دهیم و اینجا جایی است که شروع
251
00:09:12,000 –> 00:09:13,680
به کمی آشفتگی می کنیم، در واقع می خواهیم
252
00:09:13,680 –> 00:09:16,160
این کار را انجام دهیم، در حالی که کم، متاسفم نه کم، در حالی که
253
00:09:16,160 –> 00:09:19,360
سمت چپ کمتر یا برابر با راست است.
254
00:09:19,360 –> 00:09:20,399
و
255
00:09:20,399 –> 00:09:21,839
کاری که اکنون میخواهیم انجام دهیم این است که میخواهیم
256
00:09:21,839 –> 00:09:24,160
نقطه میانی را پیدا کنیم، بنابراین نقطه میانی همیشه
257
00:09:24,160 –> 00:09:26,640
رفتن است باید به چپ به علاوه راست و سپس
258
00:09:26,640 –> 00:09:29,360
عدد صحیح تقسیم بر 2 شود.
259
00:09:29,360 –> 00:09:30,320
اکنون
260
00:09:30,320 –> 00:09:33,440
ما به یک تابع کمکی نیاز داریم تا به ما بگوید
261
00:09:33,440 –> 00:09:34,959
که آیا واقعاً میتوانیم نوارها را برش دهیم یا نه
262
00:09:34,959 –> 00:09:38,480
263
00:09:38,480 –> 00:09:41,040
264
00:09:41,040 –> 00:09:43,120
265
00:09:43,120 –> 00:09:44,640
. معیارهای ما برای اینکه چگونه
266
00:09:44,640 –> 00:09:47,120
جستجوی دودویی خود را به بالا
267
00:09:47,120 –> 00:09:50,240
یا پایین حرکت میدهیم، بنابراین میخواهیم بگوییم که آیا خود
268
00:09:50,240 –> 00:09:53,279
نقطه میتواند
269
00:09:53,279 –> 00:09:55,760
روبانها را برش دهد یا خیر و ما از k
270
00:09:55,760 –> 00:09:58,480
عبور میکنیم و از وسط به عنوان طول عبور میکنیم.
271
00:09:58,480 –> 00:10:01,200
اگر بتوانیم این طول را کاهش دهیم، به این معنی است که
272
00:10:01,200 –> 00:10:03,360
شما میدانید که ما یک راهحل بالقوه پیدا کردهایم،
273
00:10:03,360 –> 00:10:05,279
بنابراین هر چیزی در سمت چپ این طول باشد،
274
00:10:05,279 –> 00:10:07,360
ما مجبور نیستیم تلاش کنیم، زیرا
275
00:10:07,360 –> 00:10:09,200
اگر بتوانیم این طول را کاهش دهیم،
276
00:10:09,200 –> 00:10:11,920
هر چیزی که پایینتر از آن است اهمیتی ندارد
277
00:10:11,920 –> 00:10:13,360
زیرا ما این کار را انجام
278
00:10:13,360 –> 00:10:15,120
خواهیم داد. اگر این کار را انجام دهیم، طول روبان کوچکتری دریافت کنید،
279
00:10:15,120 –> 00:10:17,440
به یاد داشته باشید که وسط
280
00:10:17,440 –> 00:10:19,120
طول روبانی است که میگیریم نه
281
00:10:19,120 –> 00:10:21,120
مقدار برشهایی که میتوانیم داشته باشیم، اینجاست که
282
00:10:21,120 –> 00:10:23,120
این مشکل کمی گیجکننده است،
283
00:10:23,120 –> 00:10:24,959
بنابراین اگر بتوانیم آن را برش دهیم،
284
00:10:24,959 –> 00:10:29,360
اندازه متوسط را میدانید. و حداقل k بدست آورید،
285
00:10:29,360 –> 00:10:31,200
سپس ما نمی خواهیم برش های کوچکتری را امتحان کنیم
286
00:10:31,200 –> 00:10:32,640
زیرا به یاد داشته باشید که ما سعی می کنیم
287
00:10:32,640 –> 00:10:36,910
حداکثر مکث را که می دانید برش
288
00:10:36,910 –> 00:10:38,079
[موسیقی]
289
00:10:38,079 –> 00:10:40,880
از این روبان هایی که دریافت می کنیم را به حداکثر برسانیم، بنابراین
290
00:10:40,880 –> 00:10:42,480
آنچه می خواهیم در اینجا انجام دهیم این است که
291
00:10:42,480 –> 00:10:45,440
بگوییم سمت چپ باید به هر
292
00:10:45,440 –> 00:10:47,680
وسط به اضافه یک حرکت کند،
293
00:10:47,680 –> 00:10:50,800
در غیر این صورت اگر ما نتوانستیم کاری را
294
00:10:50,800 –> 00:10:52,800
که میخواهیم انجام دهیم برش دهیم، این است که میخواهیم
295
00:10:52,800 –> 00:10:56,720
نشانگر سمت راست خود را به وسط منهای یک ببریم
296
00:10:56,720 –> 00:10:58,399
و دوباره اگر این واقعاً
297
00:10:58,399 –> 00:10:59,839
منطقی نیست، به
298
00:10:59,839 –> 00:11:01,279
صفحه طراحی برمیگردیم و نشان میدهم شما چرا
299
00:11:01,279 –> 00:11:02,800
باید این کار را به این صورت انجام دهید
300
00:11:02,800 –> 00:11:05,040
کمی گیج کننده است اما
301
00:11:05,040 –> 00:11:07,360
زمانی که آن را ترسیم کردم خواهید دید تا
302
00:11:07,360 –> 00:11:09,600
بدانید جستجوی باینری طبق معمول پیش می رود
303
00:11:09,600 –> 00:11:10,640
304
00:11:10,640 –> 00:11:13,040
و در پایان کاری که می خواهیم انجام دهیم این است که
305
00:11:13,040 –> 00:11:16,640
می خواهیم خود را برگردانیم در اینجا
306
00:11:16,640 –> 00:11:18,959
و اکنون کاری که باید انجام دهیم این است که باید
307
00:11:18,959 –> 00:11:21,519
تابع برش can خود را تعریف
308
00:11:21,519 –> 00:11:24,000
کنیم تا بگوییم def can cut
309
00:11:24,000 –> 00:11:26,000
310
00:11:26,000 –> 00:11:27,600
311
00:11:27,600 –> 00:11:29,360
312
00:11:29,360 –> 00:11:30,720
طولی که میخواهیم
313
00:11:30,720 –> 00:11:34,240
با آن کار کنیم یا میخواهیم با آن برش دهیم را میگیریم،
314
00:11:34,240 –> 00:11:35,839
بنابراین مقدار روبانهایی که
315
00:11:35,839 –> 00:1