Recursion Backtracking and Dynamic Programming in Python

Course Feature
  • Cost
    Paid
  • Provider
    Udemy
  • Certificate
    Paid Certification
  • Language
    English
  • Start Date
    2023-04-17
  • Learners
    No Information
  • Duration
    No Information
  • Instructor
    Holczer Balazs
Next Course
4.8
10,244 Ratings
This course is designed to help you understand the fundamental concepts of algorithmic problems, focusing on recursion, backtracking, dynamic programming and divide and conquer approaches. It covers topics such as stack memory and heap memory, Fibonacci numbers, tower of Hanoi problem, linear search approach, Hoare's algorithm, quickselect algorithm, binary numbers, n-queens problem, knapsack problem, optimal packing, merge sort, substring search algorithms, common interview questions, and algorithms analysis. With this course, you will learn the theoretical background of these algorithms and implement them from scratch in Python. Join now and get started!
Show All
Course Overview

❗The content presented here is sourced directly from Udemy platform. For comprehensive course details, including enrollment information, simply click on the 'Go to class' link on our website.

Updated in [July 17th, 2023]

This course provides an overview of the fundamental concepts of algorithmic problems, focusing on recursion, backtracking, dynamic programming and divide and conquer approaches. It covers topics such as recursion and recursive methods, stack memory and heap memory overview, Fibonacci numbers, factorial function, tower of Hanoi problem, linear search approach, binary search algorithm, selection algorithms, Hoare's algorithm, quickselect algorithm, median of medians algorithm, the secretary problem, binary numbers, logical operators and shift operators, checking even and odd numbers, bit length problem, Russian peasant multiplication, backtracking, n-queens problem, Hamiltonian cycle problem, coloring problem, knight's tour problem, maze problem, Sudoku problem, dynamic programming, knapsack problem, rod cutting problem, subset sum problem, Kadane's algorithm, longest common subsequence (LCS) problem, optimal packing, bin packing problem, divide and conquer approaches, dynamic programming and divide and conquer method, sorting in O(NlogN) with merge sort, the closest pair of points problem, substring search algorithms, brute-force substring search, Z substring search algorithm, Rabin-Karp algorithm and hashing, Knuth-Morris-Pratt (KMP) substring search algorithm, common interview questions (Google, Facebook and Amazon), anagram problem, palindrome problem, integer reversion problem, dutch national flag problem, trapping rain water problem, algorithms analysis, running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations, complexity classes, polynomial (P)and non-deterministic polynomial (NP)algorithms. The course will also cover the implementation of these problems from scratch in Python.

Course Syllabus

Introduction

Environment Setup

Recursion

Search Algorithms

Selection Algorithms

Bit Manipulation Problems

Backtracking

Dynamic Programming

Optimal Packing Problem

Divide and Conquer Algorithms

Substring Search Algorithms

COMMON INTERVIEW QUESTIONS (Amazon, Facebook and Google)

Next Steps

### APPENDIX - COMPLEXITY THEORY CRASH COURSE ###

Algorhyme FREE Algorithms Visualizer App

Course Materials (DOWNLOADS)

Show All
Pros & Cons
  • Good explanation using examples.
  • Comprehensive coverage of non-trivial algorithms.
  • Step-by-step visualizations of algorithm operations.
  • Provided Python source code works.
  • Well-organized and properly explained content.
  • Rapid explanation, hard to keep track.
  • Few mistakes in presentation.
  • Assumes prior knowledge of basic algorithms and data structures.
Show All
Recommended Courses
dynamic-programming-i-5788
Dynamic Programming - I
4.6
Udemy 8,161 learners
Learn More
Are you looking to ace coding interviews for the Tech Giants? This course is perfect for you! Learn how to approach Dynamic Programming problems and visualize elegant solutions. With varying difficulty levels, this course will help you understand, visualize and conceptualize the problem solving approach firmly. Get ready to tackle DP problems with C++ and Java codes, quizzes and coding assignments. Enroll now and master the art of solving DP problems!
dynamic-programming-algorithms-master-course-2022-5789
Dynamic Programming Algorithms Master Course (2022)
4.2
Udemy 5,478 learners
Learn More
Are you looking to level up your Dynamic Programming skills? Look no further! Apaar Kamal, software engineer at Google & Master on Codeforces, and Prateek Narang, an ex-Google engineer and founder of Coding Minutes, have designed a rigorous and highly detailed Dynamic Programming Master Course for 2022. This 40+ hour course covers the breadth and depth of dynamic programming, from recursion and backtracking to multi-dimensional DP, partition problems, combinatorics, strings, trees and graphs, game theory, and more. You'll also get full solved Atcoder Educational DP Contest as part of the course. With lifetime access and detailed video explanations, this course is the perfect way to master the important DP concepts and ace competitive coding and interviews. Don't miss out - join the course now and take your DP skills to the next level!
the-road-to-dynamic-programming-java-javascript-python-5790
The Road To Dynamic Programming: Java JavaScript & Python
4.2
Udemy 23,643 learners
Learn More
This course is the perfect opportunity to learn about one of the most difficult topics in programming: dynamic programming. In this course, you will learn the basics of dynamic programming, two popular techniques (memoization and tabulation), and how to solve famous dynamic programming problems. You will also get to practice your skills with quizzes and coding exercises. With Java, JavaScript, and Python, you will be able to implement your code and make your dynamic programming experience more enjoyable. So, join this course and start your journey to mastering dynamic programming!
dynamic-programming-for-solving-problems-5791
Dynamic Programming for Solving Problems
4.2
Udemy 13,658 learners
Learn More
This course on 'Dynamic Programming for Solving Problems' is perfect for those who have just started programming and want to learn the approach of Dynamic Programming. It covers 8 different problems, from 0-1 Knapsack Problem to Range Sum Making Queries without updates, and teaches two ways of applying the paradigm of Dynamic Programming: Top down Approach and Bottom up Approach. With over 1 hour of video explanation, this course is the perfect way to learn the fundamentals of Dynamic Programming. So, don't wait any longer and start learning now!
Favorites (0)
Favorites
0 favorite option

You have no favorites

Name delet