در این مطلب، ویدئو بزرگترین شماره – Leetcode 179 – Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:02,080
با استفاده از لینک موجود در توضیحات algomonster را بررسی کنید
2
00:00:02,080 –> 00:00:05,040
و از code neat برای
3
00:00:05,040 –> 00:00:08,080
10 دسترسی مادام العمر استفاده کنید سلام به همه خوش
4
00:00:08,080 –> 00:00:09,760
آمدید و بیایید امروز چند کد دقیق تر بنویسیم
5
00:00:09,760 –> 00:00:11,840
تا امروز مشکل
6
00:00:11,840 –> 00:00:15,040
بزرگترین عدد را حل کنیم به ما لیستی از
7
00:00:15,040 –> 00:00:17,840
اعداد صحیح غیر منفی داده شده است. میخواهیم
8
00:00:17,840 –> 00:00:20,400
آنها را طوری مرتب کنیم که
9
00:00:20,400 –> 00:00:22,160
بزرگترین عدد را تشکیل دهند و سپس میخواهیم
10
00:00:22,160 –> 00:00:24,080
آن عدد را برگردانیم که ممکن است
11
00:00:24,080 –> 00:00:25,840
واقعاً بزرگ باشد، بنابراین در واقع
12
00:00:25,840 –> 00:00:28,400
آن را بهجای یک عدد صحیح به عنوان رشته برگردانیم،
13
00:00:28,400 –> 00:00:30,480
بنابراین بیایید به یک نگاهی بیندازیم.
14
00:00:30,480 –> 00:00:32,238
به عنوان مثال، چگونه میخواهیم
15
00:00:32,238 –> 00:00:34,559
این دو عدد صحیح را به گونهای مرتب کنیم که
16
00:00:34,559 –> 00:00:37,200
بزرگترین نتیجه را تشکیل
17
00:00:37,200 –> 00:00:41,360
دهند یا 102 یا 210 داشته باشیم.
18
00:00:41,360 –> 00:00:43,760
بدیهی است که 210 بزرگتر است، بنابراین این
19
00:00:43,760 –> 00:00:45,440
موردی است که ما میخواهیم به آن برگردانیم،
20
00:00:45,440 –> 00:00:47,680
مثال جالبتر دومی خواهد بود.
21
00:00:47,680 –> 00:00:49,600
یک هزار راه مختلف برای
22
00:00:49,600 –> 00:00:51,280
تنظیم مجدد این وجود دارد که چگونه میخواهیم
23
00:00:51,280 –> 00:00:53,280
بهترین راه را به خوبی کشف کنیم، میتوانید ببینید
24
00:00:53,280 –> 00:00:56,320
که نتیجه با عدد 9 شروع میشود.
25
00:00:56,320 –> 00:00:59,600
26
00:00:59,600 –> 00:01:02,320
ht 34
27
00:01:02,320 –> 00:01:04,640
بزرگتر است اما رقم چیزی است که ما به آن اهمیت می
28
00:01:04,640 –> 00:01:07,439
دهیم زیرا در مجموع تعداد
29
00:01:07,439 –> 00:01:09,439
کل ارقام به درستی تغییر نمی کند
30
00:01:09,439 –> 00:01:11,600
، خروجی همیشه به این
31
00:01:11,600 –> 00:01:13,520
تعداد رقم خواهد بود و در این
32
00:01:13,520 –> 00:01:15,600
مرحله احتمالاً به طور شهودی می توانید
33
00:01:15,600 –> 00:01:17,840
متوجه شوید که حریص است. این
34
00:01:17,840 –> 00:01:20,080
راه حل خواهد بود زیرا ما می خواهیم
35
00:01:20,080 –> 00:01:22,960
بزرگترین ارقام را در مهم ترین
36
00:01:22,960 –> 00:01:24,960
مکان داشته باشیم، بنابراین در این مورد می بینیم که
37
00:01:24,960 –> 00:01:28,159
در سمت راست حدود هفت رقم داریم، البته
38
00:01:28,159 –> 00:01:30,079
در مهم ترین رقم
39
00:01:30,079 –> 00:01:32,159
، بزرگترین رقم موجود را می خواهیم در
40
00:01:32,159 –> 00:01:34,560
صورت امکان، درست 9 عدد و سپس
41
00:01:34,560 –> 00:01:36,880
دومین بزرگتر یک پنج خواهد بود، اکنون
42
00:01:36,880 –> 00:01:40,240
بخش دشوار بین این سه عدد سمت راست خواهد بود،
43
00:01:40,240 –> 00:01:42,720
بدیهی است که یک سه در اینجا خواهد بود
44
00:01:42,720 –> 00:01:44,399
بدون توجه به اینکه کدام یک از این سه
45
00:01:44,399 –> 00:01:46,799
مقدار را انتخاب می کنیم، اما کدام
46
00:01:46,799 –> 00:01:49,520
یک به بزرگترین عدد صحیح منتهی می
47
00:01:49,520 –> 00:01:51,920
شود. قرار دادن 3 در اینجا
48
00:01:51,920 –> 00:01:55,600
یا 30 در اینجا یا 34 خواهد بود. در این مورد
49
00:01:55,600 –> 00:01:59,600
34 خواهد بود زیرا این همان چیزی است که
50
00:01:59,600 –> 00:02:01,600
رقمی را که به اینجا می رود به حداکثر می رساند
51
00:02:01,600 –> 00:02:03,680
زیرا اگر یکی از دو عدد دیگر را انتخاب کنیم
52
00:02:03,680 –> 00:02:06,320
53
00:02:06,320 –> 00:02:09,038
ما در این نقطه به عدد 3 می رسیم،
54
00:02:09,038 –> 00:02:11,599
بدون در نظر گرفتن این موضوع به عدد 3 می رسیم، اما
55
00:02:11,599 –> 00:02:14,000
بدیهی است که 34 بزرگتر از
56
00:02:14,000 –> 00:02:15,680
33 خواهد بود، بنابراین عدد
57
00:02:15,680 –> 00:02:17,440
34 رقمی خواهد بود که
58
00:02:17,440 –> 00:02:18,400
59
00:02:18,400 –> 00:02:22,959
اکنون نیز انتخاب می کنیم اینجا قرار دهیم. بین 3 تا 30
60
00:02:22,959 –> 00:02:25,280
اینها دو عدد صحیح باقی مانده
61
00:02:25,280 –> 00:02:26,879
ما هستند که اگر 30 را در اینجا قرار دهیم اول آن را به خوبی
62
00:02:26,879 –> 00:02:30,000
قرار می دهیم،
63
00:02:30,000 –> 00:02:33,360
در این نقطه با 0 می گیریم، اما اگر ابتدا 3 را قرار دهیم
64
00:02:33,360 –> 00:02:36,720
و سپس 30 را قرار دهیم، در نهایت به عدد 0 می رسیم. یک عدد 3 در
65
00:02:36,720 –> 00:02:39,680
این نقطه، بنابراین این بزرگتر از
66
00:02:39,680 –> 00:02:42,560
جایگزینی است که می توانست 303 باشد
67
00:02:42,560 –> 00:02:45,280
، بنابراین ایده حریص بودن این است که شما
68
00:02:45,280 –> 00:02:47,599
بخش سخت این مشکل را نمی دانید،
69
00:02:47,599 –> 00:02:49,680
اما فهمیدن اینکه چگونه عملاً این مشکل را اجرا
70
00:02:49,680 –> 00:02:52,560
کنید کمی مشکل است.
71
00:02:52,560 –> 00:02:54,400
برای درک شهود بین
72
00:02:54,400 –> 00:02:56,640
نحوه انجام این کار در حال حاضر ساده ترین راه
73
00:02:56,640 –> 00:02:58,480
این است که بدانید فقط دو
74
00:02:58,480 –> 00:03:00,800
عدد از این قبیل را انتخاب کنید
75
00:03:00,800 –> 00:03:03,599
تا آنها را با هم مقایسه کنید و سپس
76
00:03:03,599 –> 00:03:05,200
بر اساس آن مقایسه بفهمید
77
00:03:05,200 –> 00:03:06,959
که کدام یک از آنها ابتدا باید بروند. و
78
00:03:06,959 –> 00:03:08,800
کدام یک از آنها باید به
79
00:03:08,800 –> 00:03:11,040
سمت راست دوم برود و اگر بتوانیم این کار را انجام دهیم، al را مقایسه کنید
80
00:03:11,040 –> 00:03:13,200
اینها را مرتب کنید و بر اساس مقایسهای که میدانید آنها را مرتب کنید
81
00:03:13,200 –> 00:03:15,040
82
00:03:15,040 –> 00:03:18,239
تا مطمئن شویم که بزرگترین ارقام
83
00:03:18,239 –> 00:03:19,680
ابتدا قرار میگیرند و سپس
84
00:03:19,680 –> 00:03:22,560
ارقام کوچکتر بعد از آن میروند تا
85
00:03:22,560 –> 00:03:25,280
به بزرگترین عدد منجر شود، میتوانیم
86
00:03:25,280 –> 00:03:28,159
تقریباً این مشکل را حل کنیم، بنابراین اگر این کار را انجام دهیم.
87
00:03:28,159 –> 00:03:30,080
88
00:03:30,080 –> 00:03:32,959
89
00:03:32,959 –> 00:03:34,480
اگر یک الگوریتم مرتبسازی کارآمد را انتخاب کنیم، یک رویکرد مرتبسازی نسبتاً کارآمد خواهد بود و log n خواهد بود،
90
00:03:34,480 –> 00:03:36,560
اما اکنون تنها سؤال این است
91
00:03:36,560 –> 00:03:38,879
که چگونه این مقایسه را انجام دهیم.
92
00:03:38,879 –> 00:03:40,640
93
00:03:40,640 –> 00:03:42,400
94
00:03:42,400 –> 00:03:45,200
ایده ممکن است این باشد که بدانید
95
00:03:45,200 –> 00:03:48,000
فقط دو عدد صحیح را یک رقم به رقم بخوانید
96
00:03:48,000 –> 00:03:50,879
و سپس بفهمید کدام رقم
97
00:03:50,879 –> 00:03:53,120
اول تفاوت دارد اولین
98
00:03:53,120 –> 00:03:55,200
رقم متفاوت و سپس و هر کدام یک
99
00:03:55,200 –> 00:03:56,959
رقم بزرگتر داشته باشد اولین رقم خواهد بود
100
00:03:56,959 –> 00:03:59,360
و شاید شما می توانید
101
00:03:59,360 –> 00:04:01,200
الگوریتمی شبیه به آن
102
00:04:01,200 –> 00:04:03,040
بیابید که احتمالاً کدنویسی آن کمی
103
00:04:03,040 –> 00:04:04,560
دردسرساز خواهد بود، اما یک چیزی که ممکن است به
104
00:04:04,560 –> 00:04:05,680
آن فکر نکرده باشید و صادقانه بگویم من
105
00:04:05,680 –> 00:04:07,360
خودم هم واقعاً به آن فکر نکرده
106
00:04:07,360 –> 00:04:09,120
بودم به روشی که ما
107
00:04:09,120 –> 00:04:11,040
حتی این دو را با هم مقایسه میکردیم نگاهی بیندازید، ما
108
00:04:11,040 –> 00:04:12,640
اساساً بررسی میکردیم که کدام یک به
109
00:04:12,640 –> 00:04:14,879
عدد صحیح بزرگتر منجر میشود
110
00:04:14,879 –> 00:04:16,798
بسته به اینکه چگونه این دو
111
00:04:16,798 –> 00:04:18,320
سیمکارت راست را مرتب کنیم، همان کاری که
112
00:04:18,320 –> 00:04:19,918
با این دو رقم درست انجام دادیم، یا میتوانیم
113
00:04:19,918 –> 00:04:23,280
303 انجام دهیم. یا میتوانیم 330 را انجام دهیم که
114
00:04:23,280 –> 00:04:25,280
به عدد صحیح بزرگتر منجر میشود،
115
00:04:25,280 –> 00:04:28,080
بدیهی است که این عدد درست است، بنابراین از آنجایی که این
116
00:04:28,080 –> 00:04:30,800
عدد صحیح بزرگتر است که باید به این معنی باشد که
117
00:04:30,800 –> 00:04:32,960
3 ابتدا میرود
118
00:04:32,960 –> 00:04:35,840
قبل از 30 میرود. بنابراین این اساساً
119
00:04:35,840 –> 00:04:37,520
مقایسهای است که ما میخواهیم انجام دهیم. برای
120
00:04:37,520 –> 00:04:40,320
مقایسه هر دو رقم از آن استفاده کنید، فرض کنید
121
00:04:40,320 –> 00:04:43,759
میدانید که ما 9 و 34 را
122
00:04:43,759 –> 00:04:46,000
123
00:04:46,000 –> 00:04:47,759
124
00:04:47,759 –> 00:04:51,919
انجام میدادیم.
125
00:04:51,919 –> 00:04:54,400
از این یکی، بنابراین باید به این معنی باشد که
126
00:04:54,400 –> 00:04:56,560
9 ابتدا می رود، این کار
127
00:04:56,560 –> 00:04:58,639
اساساً مانند یک مشکل فرعی
128
00:04:58,639 –> 00:05:00,479
کل مسئله است که به ما یک سری
129
00:05:00,479 –> 00:05:03,520
اعداد صحیح داده شده است، اما می توانیم مشکل فرعی را
130
00:05:03,520 –> 00:05:05,440
روی دو عدد صحیح داده شده اجرا کنیم تا بفهمیم
131
00:05:05,440 –> 00:05:07,360
کدام یک باید اول برود و این کار خواهد شد
132
00:05:07,360 –> 00:05:09,919
به ما اجازه دهید تا با
133
00:05:09,919 –> 00:05:12,479
استفاده از مرتبسازی بر اساس این مقایسه، مشکل بزرگتر را حل کنیم،
134
00:05:12,479 –> 00:05:14,639
بنابراین این ایده ممکن است خیلی
135
00:05:14,639 –> 00:05:16,960
آسان نباشد، اما خوشبختانه
136
00:05:16,960 –> 00:05:19,440
کدنویسی نسبتاً آسان است، بنابراین اجازه
137
00:05:19,440 –> 00:05:21,360
دهید قبل از ادامه ویدیو، این کار را
138
00:05:21,360 –> 00:05:23,199
انجام دهیم. شما کمی در مورد
139
00:05:23,199 –> 00:05:25,600
algo monster همانطور که برای
140
00:05:25,600 –> 00:05:27,919
مصاحبه های کدنویسی خود در algomonster آماده می شوید،
141
00:05:27,919 –> 00:05:29,759
در واقع بازخورد دریافت خواهید کرد که در کدام
142
00:05:29,759 –> 00:05:31,840
دسته ها قوی هستید و در کدام
143
00:05:31,840 –> 00:05:33,520
دسته ها می توانید کمی
144
00:05:33,520 –> 00:05:35,840
تمرین کنید و زمان را برای حل مسائل تصادفی تلف نمی کنید.
145
00:05:35,840 –> 00:05:38,080
زیرا algo
146
00:05:38,080 –> 00:05:39,840
monster
147
00:05:39,840 –> 00:05:42,880
تجزیه و تحلیل هوشمندانه ای در مورد اینکه کدام دسته از
148
00:05:42,880 –> 00:05:45,120
مشکلات بیشتر پرسیده می شود انجام داده است و
149
00:05:45,120 –> 00:05:47,600
حتی این آمارها را برای
150
00:05:47,600 –> 00:05:50,320
شرکت های خاص اصلاح کرده اند و در کمال تعجب برخی از
151
00:05:50,3