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