در این مطلب، ویدئو Two Sum – Leetcode 1 – HashMap – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:08:26
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,730
بیایید همه کد نشت یک تا چند از
2
00:00:02,730 –> 00:00:04,980
محبوب ترین سوال کد نشت را بیان کنیم، بنابراین
3
00:00:04,980 –> 00:00:07,500
یک آرایه ورودی و مقداری هدف در
4
00:00:07,500 –> 00:00:10,110
این مورد 9 به ما داده می شود و می خواهیم دو
5
00:00:10,110 –> 00:00:12,599
مقدار را در این آرایه ورودی پیدا کنیم که مجموع آنها 9 است،
6
00:00:12,599 –> 00:00:15,509
بنابراین در این مورد 2 است. و 7 اکنون
7
00:00:15,509 –> 00:00:17,190
می خواهیم شاخص های این دو مقدار را برگردانیم،
8
00:00:17,190 –> 00:00:20,100
بنابراین شاخص صفر
9
00:00:20,100 –> 00:00:22,920
شاخص دو صفر است، شاخص 7 برابر 1 است، بنابراین
10
00:00:22,920 –> 00:00:24,060
ما 0 و 1 را برمی گردانیم و
11
00:00:24,060 –> 00:00:26,039
تضمین می کنیم که دقیقا
12
00:00:26,039 –> 00:00:27,900
یک راه حل وجود دارد، بنابراین ما نمی کنیم. ما
13
00:00:27,900 –> 00:00:30,150
نباید نگران یافتن راه حل باشیم و
14
00:00:30,150 –> 00:00:31,260
نیازی نیست که نگران
15
00:00:31,260 –> 00:00:33,930
راه حل های متعدد باشیم، بصری ترین راه برای
16
00:00:33,930 –> 00:00:35,910
حل این مشکل اساساً این است
17
00:00:35,910 –> 00:00:38,010
که هر ترکیبی از دو مقدار را بررسی کنیم
18
00:00:38,010 –> 00:00:40,100
و ببینیم آیا آنها می توانند به هدف ما خلاصه شوند یا خیر.
19
00:00:40,100 –> 00:00:43,649
از 2 شروع می کنیم، هر
20
00:00:43,649 –> 00:00:45,719
ترکیبی را که می توانیم بسازیم که شامل 2 می شود را بررسی می کنیم،
21
00:00:45,719 –> 00:00:48,059
بنابراین بقیه
22
00:00:48,059 –> 00:00:51,390
آرایه 1 5 3 را اسکن می کنیم و بررسی می کنیم که آیا هر یک از آن
23
00:00:51,390 –> 00:00:54,360
اعداد به 2 اضافه شده است یا خیر،
24
00:00:54,360 –> 00:01:00,300
در این مورد هیچ یک از آنها این کار را انجام نمی دهند.
25
00:01:00,300 –> 00:01:01,500
این فرآیند را تکرار کنید،
26
00:01:01,500 –> 00:01:04,110
بیایید هر ترکیبی از جمله
27
00:01:04,110 –> 00:01:06,750
یکی را بررسی کنیم هدف را خلاصه می کند، بنابراین
28
00:01:06,750 –> 00:01:08,400
هر عنصری را که
29
00:01:08,400 –> 00:01:12,180
بعد از 5 و 3 می آید اسکن می کنیم و متوجه می شویم که
30
00:01:12,180 –> 00:01:15,590
یکی با 3 جمع به هدف 4 ما اضافه شده است،
31
00:01:15,590 –> 00:01:18,150
متوجه می شویم که لازم نیست
32
00:01:18,150 –> 00:01:20,250
مقادیر قبل از 1 را بررسی کنیم زیرا
33
00:01:20,250 –> 00:01:22,740
قبلاً وقتی اینجا بودیم ترکیب 2 و 1 را بررسی
34
00:01:22,740 –> 00:01:24,869
کردیم به یاد داشته باشید زمانی
35
00:01:24,869 –> 00:01:27,450
که همه ترکیب ها را با 2 بررسی
36
00:01:27,450 –> 00:01:29,130
کردیم، بنابراین مجبور نبودیم این کار را
37
00:01:29,130 –> 00:01:30,780
در اینجا تکرار کنیم، فقط باید اعدادی را
38
00:01:30,780 –> 00:01:32,280
که بعد از 1 آمده
39
00:01:32,280 –> 00:01:34,500
اند بررسی کنیم، بنابراین زمان اجرای این الگوریتم نیست.
40
00:01:34,500 –> 00:01:36,780
فوق العاده کارآمد نیست، این اساساً نیروی بی رحمی است
41
00:01:36,780 –> 00:01:38,340
که ما در کل
42
00:01:38,340 –> 00:01:40,409
آرایه طول می گذرانیم و
43
00:01:40,409 –> 00:01:43,439
بدترین حالت را n بار برای هر عدد انجام می دهیم،
44
00:01:43,439 –> 00:01:46,079
این بدان معناست که در بدترین حالت
45
00:01:46,079 –> 00:01:49,170
پیچیدگی زمانی O از N خواهد بود به مجذور
46
00:01:49,170 –> 00:01:51,960
آیا اکنون میتوانیم بهتر عمل کنیم چیزی که باید به آن توجه کنیم این است
47
00:01:51,960 –> 00:01:56,009
که برای هر عدد به عنوان مثال 1
48
00:01:56,009 –> 00:01:58,170
مقدار مورد نظر ما
49
00:01:58,170 –> 00:02:00,719
تفاوت بین هدف و این
50
00:02:00,719 –> 00:02:03,869
مقدار 1 است بنابراین ما به دنبال 4 منهای 1 هستیم
51
00:02:03,869 –> 00:02:06,630
که برابر با 3 است. به این معنی
52
00:02:06,630 –> 00:02:09,119
که این تنها ارزشی است که می توانیم به آن اضافه
53
00:02:09,119 –> 00:02:11,220
کنیم با هدف برابر است، بنابراین مجبور نیستیم
54
00:02:11,220 –> 00:02:12,870
هر عددی را که فقط
55
00:02:12,870 –> 00:02:13,599
میخواهیم بدانیم
56
00:02:13,599 –> 00:02:15,999
در برابر s مقاومت میکنیم بررسی کنیم – اکنون سادهترین راه برای انجام
57
00:02:15,999 –> 00:02:17,950
کارآمدترین این کار، ساختن یک
58
00:02:17,950 –> 00:02:20,530
نقشه هش از هر مقدار در آرایه ورودی است.
59
00:02:20,530 –> 00:02:22,359
ما میتوانیم فوراً بررسی کنیم که آیا
60
00:02:22,359 –> 00:02:27,670
مقدار 3 وجود دارد یا خیر، بیایید همین مشکل را امتحان کنیم،
61
00:02:27,670 –> 00:02:29,980
به جز این که اجازه دهید از یک نقشه هش استفاده
62
00:02:29,980 –> 00:02:36,819
کنیم، اکنون در نقشه هش خود،
63
00:02:36,819 –> 00:02:39,459
هر مقدار را به شاخص هر مقدار نگاشت میکنیم،
64
00:02:39,459 –> 00:02:42,519
بنابراین شاخص 2 برابر 0 است.
65
00:02:42,519 –> 00:02:44,980
شاخص 1 است 1 شاخص 5 است 2
66
00:02:44,980 –> 00:02:47,620
است شاخص 3 است 3 بنابراین اجازه دهید در نقشه هش خود
67
00:02:47,620 –> 00:02:49,629
ما مقدار را به نمایه نگاشت
68
00:02:49,629 –> 00:02:53,219
69
00:02:55,290 –> 00:02:59,409
کنیم اکنون می توانیم هر مقدار در این
70
00:02:59,409 –> 00:03:02,290
آرایه را به نقشه هش اضافه کنیم قبل از اینکه شروع به
71
00:03:02,290 –> 00:03:03,819
تکرار از طریق آن کنیم،
72
00:03:03,819 –> 00:03:06,069
در واقع یک راه ساده تر برای انجام آن وجود دارد، اگر در
73
00:03:06,069 –> 00:03:08,290
ابتدا کل آرایه را به نقشه هش اضافه
74
00:03:08,290 –> 00:03:10,090
کنیم، سپس ابتدا به مقدار
75
00:03:10,090 –> 00:03:12,430
2 می رسیم که می خواهیم
76
00:03:12,430 –> 00:03:15,489
تفاوت بین هدف 4 منهای
77
00:03:15,489 –> 00:03:18,819
این مقدار را بررسی کنیم. 2 که برابر با 2 است
78
00:03:18,819 –> 00:03:21,009
در نقشه هش ما وجود دارد و ما متوجه می شویم که 2
79
00:03:21,009 –> 00:03:23,229
در o وجود دارد نقشه هش ur اما ما
80
00:03:23,229 –> 00:03:26,199
مجاز به استفاده مجدد از همان نقشه
81
00:03:26,199 –> 00:03:28,359
نیستیم زیرا هر دو در یک شاخص هستند،
82
00:03:28,359 –> 00:03:30,939
نمی توانیم از یک مقدار دو بار استفاده کنیم، بنابراین
83
00:03:30,939 –> 00:03:32,799
باید شاخص
84
00:03:32,799 –> 00:03:35,739
2 فعلی خود را با شاخص مقایسه کنیم. 2 که
85
00:03:35,739 –> 00:03:38,199
در نقشه هش ما وجود دارد، در واقع یک
86
00:03:38,199 –> 00:03:39,909
راه ساده تر برای انجام این کار وجود دارد و
87
00:03:39,909 –> 00:03:41,500
کمی هوشمندانه است و اجازه دهید به شما نشان دهم که چگونه
88
00:03:41,500 –> 00:03:43,870
این کار را انجام دهید، بنابراین با انجام این
89
00:03:43,870 –> 00:03:46,000
روش هوشمندانه در ابتدا می گوییم نقشه هش ما
90
00:03:46,000 –> 00:03:48,519
خالی است، بنابراین به مقدار 2 اول از
91
00:03:48,519 –> 00:03:50,590
همه درست است و ما می خواهیم به دنبال
92
00:03:50,590 –> 00:03:54,340
تفاوت 4 منهای 2 در نقشه هش خود بگردیم نقشه هش ما
93
00:03:54,340 –> 00:03:57,639
خالی است بنابراین 2 را پیدا نمی کنیم
94
00:03:57,639 –> 00:04:00,669
پس پس از بازدید از این عنصر
95
00:04:00,669 –> 00:04:02,949
می توانیم آن را به نقشه هش خود اضافه کنیم. اکنون
96
00:04:02,949 –> 00:04:04,959
که بازدید از آن را تمام کردم،
97
00:04:04,959 –> 00:04:07,329
به عنصر دوم 1 می روم و قبل از انجام
98
00:04:07,329 –> 0