این دوره در مورد مفاهیم اساسی مسائل الگوریتمی با تمرکز بر بازگشت، عقبگرد، برنامه نویسی پویا و رویکردهای تقسیم و غلبه است. تا جایی که به من مربوط می شود، امروزه این تکنیک ها بسیار مهم هستند، الگوریتم ها را می توان در چندین زمینه از مهندسی نرم افزار گرفته تا بانکداری سرمایه گذاری یا R D استفاده کرد (و کاربردهای متعددی دارد).
بخش 1 - بازگشت
روش های بازگشتی و بازگشتی چیستند
نمایش کلی حافظه پشته و حافظه پشته
سرریز پشته چیست؟
اعداد فیبوناچی
تابع عاملی
مشکل برج هانوی
بخش 2 - الگوریتم های جستجو
رویکرد جستجوی خطی
الگوریتم جستجوی دودویی
بخش 3 - الگوریتم های انتخاب
الگوریتم های انتخاب چیست؟
چگونه آمار مرتبه k در زمان اجرای خطی O(N) را پیدا کنیم؟
الگوریتم انتخاب سریع
الگوریتم میانه میانه
مشکل منشی
بخش 4 - مشکلات دستکاری بیتی
اعداد باینری
عملگرهای منطقی و عملگرهای شیفت
بررسی اعداد زوج و فرد
مشکل طول بیت
تکثیر دهقانان روسی
بخش 5 - رهگیری
بازگشت چیست؟
مشکل n-queens
مشکل چرخه هامیلتونی
مشکل رنگ آمیزی
مشکل تور شوالیه
بازی سودوکو
بخش 6 - برنامه نویسی دینامیک
برنامه نویسی پویا چیست؟
مشکل کوله پشتی
مشکل برش میله
مشکل جمع زیر مجموعه
الگوریتم کادان (حداکثر زیرآرایه)
طولانی ترین مشکل متداول فرعی (LCS)
بخش 7 - بسته بندی بهینه
بسته بندی بهینه چیست؟
مشکل بسته بندی مخزن
بخش 8 - رویکردهای تقسیم و تسخیر
رویکرد تفرقه بینداز و حکومت کن چیست؟
برنامه نویسی پویا و روش تقسیم و غلبه
چگونه می توان به مرتب سازی در O(NlogN) با مرتب سازی ادغام دست یافت؟
مشکل نزدیکترین جفت نقطه
بخش 9 - سؤالات متداول مصاحبه
برترین سوالات مصاحبه (گوگل، فیسبوک و آمازون)
مشکل آناگرام
مشکل پالیندروم
مشکل آب باران به دام افتادن
مشکل افتادن تخم مرغ
مشکل پرچم ملی هلند
در هر بخش در مورد پیشینه نظری همه این الگوریتمها صحبت خواهیم کرد، سپس میخواهیم این مشکلات را با هم از ابتدا در جاوا پیادهسازی کنیم.
در نهایت، شما می توانید در مورد رایج ترین سؤالات مصاحبه (گوگل، مایکروسافت، آمازون و غیره) بیاموزید
از اینکه به دوره پیوستید متشکریم، بیایید شروع کنیم!
مهندس نرم افزار
نمایش نظرات