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