در این مطلب، ویدئو قایق هایی برای نجات مردم – Leetcode 881 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:07:02
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,839
سلام به همه خوش آمدید و بیایید
2
00:00:01,839 –> 00:00:03,600
امروز یک کد دقیق تر بنویسیم، بنابراین امروز
3
00:00:03,600 –> 00:00:06,000
بیایید قایق های مشکل را حل کنیم تا
4
00:00:06,000 –> 00:00:08,880
مردم را نجات دهیم که به ما آرایه ای از افراد داده شده است
5
00:00:08,880 –> 00:00:11,120
و هر مقدار در این آرایه البته نشان دهنده
6
00:00:11,120 –> 00:00:13,360
یک شخص است، اما به طور خاص
7
00:00:13,360 –> 00:00:15,679
نشان دهنده وزن آن است.
8
00:00:15,679 –> 00:00:18,240
همچنین تعداد نامحدودی قایق به ما داده می شود
9
00:00:18,240 –> 00:00:20,880
که در آن هر قایق دارای حداکثر وزنی است
10
00:00:20,880 –> 00:00:23,279
که به عنوان پارامتر تابع نیز به ما داده می شود،
11
00:00:23,279 –> 00:00:25,920
بنابراین هر قایق
12
00:00:25,920 –> 00:00:28,000
دقیقاً همان محدودیت وزنی را خواهد داشت
13
00:00:28,000 –> 00:00:29,519
و محدودیت دیگری وجود دارد که
14
00:00:29,519 –> 00:00:32,640
هر قایق می تواند در آن حمل کند. بیشتر دو نفر
15
00:00:32,640 –> 00:00:34,079
اما برای ما این خوب است زیرا
16
00:00:34,079 –> 00:00:36,559
در واقع مشکل را ساده می کند اما
17
00:00:36,559 –> 00:00:38,960
البته دو نفر مجموع
18
00:00:38,960 –> 00:00:41,120
وزن دو نفر نمی تواند
19
00:00:41,120 –> 00:00:42,960
از حد آن قایق تجاوز کند که
20
00:00:42,960 –> 00:00:45,520
هدف ما
21
00:00:45,520 –> 00:00:47,120
تعیین حداقل تعداد است. قایق هایی
22
00:00:47,120 –> 00:00:50,079
که برای حمل همه افراد نیاز است و
23
00:00:50,079 –> 00:00:52,079
همیشه این امکان وجود دارد
24
00:00:52,079 –> 00:00:54,559
زیرا به ما نیز گفته شده که هر
25
00:00:54,559 –> 00:00:57,360
فرد در
26
00:00:57,360 –> 00:00:59,760
محدوده وزنی قرار دارد شما قایق را می شناسید، بنابراین
27
00:00:59,760 –> 00:01:01,680
از آنجایی که به ما محدودیت وزن داده شده است و
28
00:01:01,680 –> 00:01:03,840
ما سعی می کنیم حداقل
29
00:01:03,840 –> 00:01:06,960
تعداد قایق ها را بدست آوریم، چگونه باید
30
00:01:06,960 –> 00:01:09,360
لیست افراد و وزن آنها را مرور کنیم
31
00:01:09,360 –> 00:01:11,680
، فرض کنیم محدودیت چیزی حدود 10 باشد و سپس
32
00:01:11,680 –> 00:01:13,680
می دانید که ما یک قایق داریم. فردی که
33
00:01:13,680 –> 00:01:15,759
اکنون راهش چهار است و ما هنوز کل
34
00:01:15,759 –> 00:01:18,240
لیست افراد باقی مانده است، پس چه کسی باید
35
00:01:18,240 –> 00:01:21,920
این فرد را به خوبی جفت کنیم، شاید
36
00:01:21,920 –> 00:01:23,759
بتوانیم او را با کسی که یکی وزن دارد جفت کنیم.
37
00:01:23,759 –> 00:01:25,920
38
00:01:25,920 –> 00:01:27,759
39
00:01:27,759 –> 00:01:30,479
فردی که شش وزن دارد آیا
40
00:01:30,479 –> 00:01:33,520
این فرد ایده آلی برای جفت کردن این
41
00:01:33,520 –> 00:01:36,240
فرد نخواهد بود زیرا
42
00:01:36,240 –> 00:01:38,400
تا حد ممکن به حد ممکن نزدیک شده
43
00:01:38,400 –> 00:01:41,439
ایم و در هر قایق دو نفر را حمل می کنیم، بنابراین
44
00:01:41,439 –> 00:01:43,360
این همان کاری است که ما می خواهیم درست انجام
45
00:01:43,360 –> 00:01:45,280
دهیم. ممکن است
46
00:01:45,280 –> 00:01:47,360
با جفت کردن آنها با فردی که
47
00:01:47,360 –> 00:01:49,759
فقط یک وزن دارد به همان راه حل برسیم، اما
48
00:01:49,759 –> 00:01:53,040
هنوز مطمئن نیستیم که اگر از یک و چهار استفاده کنیم، ممکن است معلوم شود که در
49
00:01:53,040 –> 00:01:55,759
آرایه ما یک یک به شش و یک نه
50
00:01:55,759 –> 00:01:58,320
درست وجود دارد.
51
00:01:58,320 –> 00:02:00,880
با هم پس میرویم به یک
52
00:02:00,880 –> 00:02:02,960
قایق جداگانه برای شش نفر و یک
53
00:02:02,960 –> 00:02:04,880
قایق جداگانه برای 9 نفر نیاز داریم زیرا
54
00:02:04,880 –> 00:02:06,880
هر دو نمی توانند در یک قایق باشند زیرا
55
00:02:06,880 –> 00:02:09,520
وزن آنها بسیار زیاد است بنابراین این
56
00:02:09,520 –> 00:02:12,319
واقعا ما را به سمت یک راه حل حریصانه سوق می دهد بنابراین
57
00:02:12,319 –> 00:02:14,560
برای هر فردی که داریم می خواهیم جفت کنیم.
58
00:02:14,560 –> 00:02:16,800
آنها را تا حد ممکن
59
00:02:16,800 –> 00:02:19,680
به حد ممکن نزدیک کنیم، بنابراین در این رشته
60
00:02:19,680 –> 00:02:21,280
افکار حریص بودن
61
00:02:21,280 –> 00:02:23,920
احتمالاً بهتر است ابتدا سنگین ترین
62
00:02:23,920 –> 00:02:27,360
افراد را بدست آوریم زیرا با استفاده از همان
63
00:02:27,360 –> 00:02:30,000
مثال اگر با سنگین ترین
64
00:02:30,000 –> 00:02:33,120
افراد شروع کنیم، باز هم خواهیم داشت
65
00:02:33,120 –> 00:02:35,680
افراد سنگین وزن را با آنها جفت کنیم و
66
00:02:35,680 –> 00:02:37,360
این دقیقاً همان کاری است که ما می خواهیم انجام دهیم،
67
00:02:37,360 –> 00:02:39,200
البته اگر ممکن است می خواهیم سنگین ترین
68
00:02:39,200 –> 00:02:41,920
فرد را با کم وزن ترین فرد جفت
69
00:02:41,920 –> 00:02:44,720
کنیم، بنابراین این یک
70
00:02:44,720 –> 00:02:47,280
راه حل بسیار حریصانه است، اکنون سؤال این است که
71
00:02:47,280 –> 00:02:50,000
ما چگونه هستیم اگر فقط به دنبال
72
00:02:50,000 –> 00:02:52,959
سنگینترین فرد میگردیم، میتوانیم سنگینترین و کمسنترین فرد را پیدا
73
00:02:52,959 –> 00:02:54,879
کنیم،
74
00:02:54,879 –> 00:02:56,319
احتمالاً میتوانیم با
75
00:02:56,319 –> 00:02:58,319
رویکرد پشتهای پیش برویم، اما از آنجایی که ما
76
00:02:58,319 –> 00:03:01,040
سنگینترین و کمسنگینترین را میخواهیم، احتمالاً با
77
00:03:01,040 –> 00:03:02,800
د آرایه ورودی را مرتب کنید زیرا
78
00:03:02,800 –> 00:03:05,599
لزوماً برای ما مرتب نشده است، بنابراین
79
00:03:05,599 –> 00:03:07,760
این یک مشکل است که
80
00:03:07,760 –> 00:03:09,599
شهود شما واقعاً می تواند شما را به راه حلی برساند
81
00:03:09,599 –> 00:03:11,280
82
00:03:11,280 –> 00:03:13,120
83
00:03:13,120 –> 00:03:14,879
. قرار است آرایه ورودی را
84
00:03:14,879 –> 00:03:16,480
مرتب کنیم، با
85
00:03:16,480 –> 00:03:19,840
سنگینترین فرد شروع میکنیم و سپس بررسی میکنیم که آیا میتوانیم
86
00:03:19,840 –> 00:03:22,000
آنها را با سبکترین فرد جفت کنیم، در
87
00:03:22,000 –> 00:03:23,680
این صورت بله، میتوانیم، بنابراین
88
00:03:23,680 –> 00:03:27,040
از یک قایق استفاده میکنیم و میدانید که هر دو
89
00:03:27,040 –> 00:03:28,799
نفر را حمل میکنیم. نمیتوانیم سه نفر را
90
00:03:28,799 –> 00:03:30,799
هر کاری انجام میدهیم حمل کنیم، حتی اگر آنها در
91
00:03:30,799 –> 00:03:32,720
محدوده وزنی باشند، اما در این مورد
92
00:03:32,720 –> 00:03:34,400
این دو نفر را حمل کنید، بنابراین ما
93
00:03:34,400 –> 00:03:36,480
با سنگینترین فرد بعدی و
94
00:03:36,480 –> 00:03:39,120
سپس با سبکترین فرد بعدی شروع میکنیم تا
95
00:03:39,120 –> 00:03:40,959
شما. به نوعی می بینیم که ما واقعاً به سمت
96
00:03:40,959 –> 00:03:42,879
یک رویکرد دو نقطه ای می رویم، این یک
97
00:03:42,879 –> 00:03:44,720
الگوریتم کاملاً استاندارد است، امیدوارم
98
00:03:44,720 –> 00:03:46,640
قبلاً آن را دیده باشید که در آن
99
00:03:46,640 –> 00:03:48,400
آرایه ورودی را با رویکرد دو نشانگر مرت