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