در این مطلب، ویدئو Leetcode – درختان جستجوی باینری منحصر به فرد II (Python) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:04:46
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,439 –> 00:00:03,600
به چالش لگو در سپتامبر خوش آمدید
2
00:00:03,600 –> 00:00:05,440
مشکل امروز این است که درختهای جستجوی دودویی منحصربهفرد
3
00:00:05,440 –> 00:00:06,960
نیز وجود دارد
4
00:00:06,960 –> 00:00:08,880
که یک عدد صحیح n داده
5
00:00:08,880 –> 00:00:10,960
6
00:00:10,960 –> 00:00:12,799
7
00:00:12,799 –> 00:00:15,839
8
00:00:15,839 –> 00:00:17,119
9
00:00:17,119 –> 00:00:19,199
شده است. با n
10
00:00:19,199 –> 00:00:21,840
برابر با 3، ما سه گره منحصر به فرد داریم، اکنون
11
00:00:21,840 –> 00:00:23,279
فقط
12
00:00:23,279 –> 00:00:25,519
پنج درخت جستجوی باینری از نظر ساختاری سالم
13
00:00:25,519 –> 00:00:27,279
وجود دارد، اگر یکی را به عنوان
14
00:00:27,279 –> 00:00:29,760
ریشه داشته باشیم، می توانیم 3 2 به این شکل
15
00:00:29,760 –> 00:00:31,679
یا 2 3 به این شکل داشته باشیم و آن
16
00:00:31,679 –> 00:00:33,760
یک جستجو باینری خواهد بود. درخت یا 2.
17
00:00:33,760 –> 00:00:35,520
حالا اگر 2 را به عنوان ریشه داشتیم،
18
00:00:35,520 –> 00:00:36,960
1 باید در سمت چپ باشد و 3 باید در
19
00:00:36,960 –> 00:00:37,840
سمت راست باشد،
20
00:00:37,840 –> 00:00:40,239
همانطور که به آرامی به این نگاه می کنیم، می
21
00:00:40,239 –> 00:00:42,000
توانیم الگوریتمی را برای من
22
00:00:42,000 –> 00:00:45,360
ببینیم که اساساً می توانیم با ساختن یک
23
00:00:45,360 –> 00:00:47,600
ریشه شروع کنیم. گره برای هر مقدار
24
00:00:47,600 –> 00:00:51,280
داخل یک تا n ما باید یک
25
00:00:51,280 –> 00:00:53,120
دو دو سه داشته
26
00:00:53,120 –> 00:00:54,640
باشیم و میخواهیم این را در مسائل فرعی بسازیم
27
00:00:54,640 –> 00:00:57,360
همه چیز در سمت چپ
28
00:00:57,360 –> 00:01:00,079
باید کوچکتر از یک باشد، بنابراین تصور کنید که
29
00:01:00,079 –> 00:01:02,239
تابعی داریم
30
00:01:02,239 –> 00:01:04,400
که طول میکشد. را شروع و پایان به عنوان یک
31
00:01:04,400 –> 00:01:05,760
پارامتر
32
00:01:05,760 –> 00:01:07,920
و اگر شروع بزرگتر از n باشد، به این
33
00:01:07,920 –> 00:01:09,520
معنی است که ما فقط هیچکدام را برمی گردانیم، بنابراین اینجا در
34
00:01:09,520 –> 00:01:11,119
سمت چپ چیزی وجود ندارد، بنابراین می توانیم
35
00:01:11,119 –> 00:01:12,400
به هیچکدام برگردیم،
36
00:01:12,400 –> 00:01:14,080
اکنون در اینجا دو و سه درخت سمت چپ داریم،
37
00:01:14,080 –> 00:01:15,040
38
00:01:15,040 –> 00:01:16,720
اما چند درخت جستجوی باینری داریم. آیا می
39
00:01:16,720 –> 00:01:18,400
توانیم با دو و سه شکل دهیم خوب متوجه شوید
40
00:01:18,400 –> 00:01:20,320
که این دو در اینجا وجود دارد که می توانیم سه را
41
00:01:20,320 –> 00:01:22,640
به عنوان ریشه و سپس دو در سمت چپ
42
00:01:22,640 –> 00:01:24,720
داشته باشیم اما نمی توانیم دو در
43
00:01:24,720 –> 00:01:27,119
سمت راست داشته باشیم در اینجا می توانیم 2 را به عنوان
44
00:01:27,119 –> 00:01:29,680
ریشه داشته باشیم و سپس 3 در سمت
45
00:01:29,680 –> 00:01:31,280
راست و غیره و غیره میتوانیم این را به
46
00:01:31,280 –> 00:01:33,280
مشکلات فرعی تبدیل کنیم تا زمانی که
47
00:01:33,280 –> 00:01:34,960
48
00:01:34,960 –> 00:01:38,479
تمام مقادیر خود را از 1 تا n تمام کنیم،
49
00:01:38,479 –> 00:01:41,040
فکر میکنم ترفند بزرگ در اینجا این است که
50
00:01:41,040 –> 00:01:42,880
بفهمیم چگونه میتوان این را بدون آن ایجاد
51
00:01:42,880 –> 00:01:45,040
کرد.
52
00:01:45,040 –> 00:01:47,119
مانند بازنویسی
53
00:01:47,119 –> 00:01:49,040
یادداشتهای ریشهای که قبلاً ساختهایم،
54
00:01:49,040 –> 00:01:50,399
بنابراین نکته کلیدی در اینجا این است که در واقع باید
55
00:01:50,399 –> 00:01:52,240
فهرستی از تمام درختهای فرعی مختلف بسازیم،
56
00:01:52,240 –> 00:01:54,399
57
00:01:54,399 –> 00:01:56,399
حالا بیایید با ایجاد
58
00:01:56,399 –> 00:01:58,240
یک روش کمکی شروع
59
00:01:58,240 –> 00:01:59,759
کنیم. برای ارسال در مقادیر شروع و پایان
60
00:01:59,759 –> 00:02:00,719
61
00:02:00,719 –> 00:02:04,320
این e اساساً در ابتدا 1 به n باشد
62
00:02:04,320 –> 00:02:07,119
حالا اگر شروع بزرگتر از
63
00:02:07,119 –> 00:02:10,479
پایان است، باید هیچکدام را برگردانید، اما به یاد داشته باشید
64
00:02:10,479 –> 00:02:12,160
که ما نمی توانیم فقط به هیچکدام برگردیم، باید
65
00:02:12,160 –> 00:02:13,440
لیستی را برگردانیم
66
00:02:13,440 –> 00:02:15,440
زیرا هر چیزی که اینجا در
67
00:02:15,440 –> 00:02:16,560
سمت چپ و راست برمی گردیم می تواند وجود داشته باشد.
68
00:02:16,560 –> 00:02:19,120
درخت های جستجوی باینری ممکن چندتایی
69
00:02:19,120 –> 00:02:20,2