Skip to content
UdemyJavaPaid courseAll LevelsCertificate

Recursion, Backtracking and Dynamic Programming in Java (Udemy.com)

Competitive Programming with Common Interview Questions (Recursion, Backtracking and Divide and Conquer Algorithms)

Created by: Holczer Balazs

Last updated September 2026

icon
What you will learn

  • Understand recursive approaches
  • Understand backtracking
  • Understand dynamic programming
  • Understand divide and conquer methods
  • Implement 15+ algorithmic problems from scratch
  • Improve your problem solving skills and become a stronger developer

How it compares

Against the other 231 rated Udemy courses in Java on CourseDuck:

  • Rating4.5 out of 5higher than 53% of them
  • Reviews1,647#100 of 232 by number of reviews
  • Length15.1 hourslonger than 70% of them
  • Last updatedSeptember 2026more recently than 94% of them

icon
Course Description

This course is about the fundamental concepts of algorithmic problems focusing on recursion, backtracking, dynamic programming and divide and conquer approaches. As far as I am concerned, these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or R&D.

Section 1 - RECURSION

  • what are recursion and recursive methods

  • stack memory and heap memory overview

  • what is stack overflow?

  • Fibonacci numbers

  • factorial function

  • tower of Hanoi problem

Section 2 - SEARCH ALGORITHMS

  • linear search approach

  • binary search algorithm

Section 3 - SELECTION ALGORITHMS

  • what are selection algorithms?

  • how to find the k-th order statistics in O(N) linear running time?

  • quickselect algorithm

  • median of medians algorithm

  • the secretary problem

Section 4 - BIT MANIPULATION PROBLEMS

  • binary numbers

  • logical operators and shift operators

  • checking even and odd numbers

  • bit length problem

  • Russian peasant multiplication

Section 5 - BACKTRACKING

  • what is backtracking?

  • n-queens problem

  • Hamiltonian cycle problem

  • coloring problem

  • knight's tour problem

  • Sudoku game

Section 6 - DYNAMIC PROGRAMMING

  • what is dynamic programming?

  • knapsack problem

  • rod cutting problem

  • subset sum problem

  • Kadan's algorithm (maximum subarray)

  • longest common subsequence (LCS) problem

Section 7 - OPTIMAL PACKING 

  • what is optimal packing?

  • bin packing problem

Section 8 - DIVIDE AND CONQUER APPROACHES

  • what is the divide and conquer approach?

  • dynamic programming and divide and conquer method

  • how to achieve sorting in O(NlogN) with merge sort?

  • the closest pair of points problem

Section 9 - COMMON INTERVIEW QUESTIONS

  • top interview questions (Google, Facebook and Amazon)

  • anagram problem

  • palindrome problem

  • trapping rain water problem

  • egg dropping problem

  • dutch national flag problem

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems together from scratch in Java.

Finally, YOU CAN LEARN ABOUT THE MOST COMMON INTERVIEW QUESTIONS (Google, Microsoft, Amazon etc.)

Thanks for joining the course, let's get started!

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Holczer Balazs

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.

Take a look at my website if you are interested in these topics!

icon
More courses by Holczer Balazs

$16.99

$10.99

$11.99

$10.99

$13.99

$13.99

icon
More Java courses

Free

$84.99

$119.99

$174.99

$17.99

$12.99

icon
Reviews

4.5

1,647 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Andrew Dowell on 5/6/2024

Excellent course. Fully explains all the concepts in great detail. I especially love the diagrams and slides that explained complex stuff - such as backtracking in recursions - in ways that anyone can understand.

By Anonymized User on 8/13/2023

The course is really good. For every concept it has a couple of similar examples and similar style of solving problems so to co-relate well with the problem. I would suggest to please add Running time complexity chapter for each problem.

By Anonymized User on 4/30/2023

it seems like we went from somewhat easy problems to understand at least to very hard problems for instances the coloring problems vs theeverything before now

By Daniel Isai Aparicio on 5/31/2022

I really like how does the professor teaches the class, he uses a lot of examples and it is clear that he wants the student to understand all the process. I am looking forward to enroll to other courses with this professor. The course contains a lot of examples of recursion and algorithms

By Dominik Auger on 8/24/2021

C'est très bon comme formation et les explications sont plus claires que celles de certains de mes professeurs à l'université. L'enseignant vulgarise très bien l'information. Plusieurs liens sont fait avec de vrais problèmes et c'est stimulant. Je sais que ce n'est pas une cours portant sur les conventions Java, mais desfois ie trouve qu'elles ne sont pas assez respectées dans les session de code. Je trouve aussi que certaines "diapositives" sont trop chargée en écriture.

By Dharna on 5/23/2021

The course was amazing. The instructor has explained all the concepts very well along with its solutions. A must course for the ones who want to learn & practice the important topics like recursion, backtracking and dynamic programming. The course also allows you to have hands-on the difficult questions.

By Nikunj Soni on 12/16/2020

He has a excellent knowledge about the all algorithms. Just one request to him please increase the font size so we can able to see videos properly without any trouble.....otherwise the sections are wonderfully explained. Thank you Holczer for this!

By Mohan Krishna Gandhi Soundararajan on 2/17/2019

Gained a different perspective of Dynamic Programming compared to other approaches. Initially the dialect was a little difficult to grasp, but he (Holczer Balazs) has put in great effort to help everyone understand.

By Van den Wyngaert Wim on 2/5/2018

I really liked the theoretical and visual explanation of the different algorithms as well as the content of the course. Excellent (like your other courses) ! I did not rate this course with 5 stars because of some minor points that can easily be improved. 1) Some of the slides contain typos, maybe it is recommended that you ask someone else to review them before publishing. 2) Although the focus of this course are algorithms the results of some of the tests are not OK because they exceed the boundaries of the primitive data types. Respecting the boundaries of the data types is also part of a good implementation of an algorithm. Example : the fibo(1000) result your program is showing is not correct, the correct result should be a number that consists of 209 digits. Also the coin exchange problem for 4000 is not correct because of an Integer overflow. Conclusion : excellent content and theoretical explanations and some minor attention points that can be improved. I'm waiting for a part II of this course because there are lots of other interesting algorithms.

By Labati Ludovic on 11/11/2017

Très intéressant... et clair : pour la première fois, j'ai compris le problème des "Tours de Hanoi"... et le cours aborde de nombreuses questions peu traitées ailleurs, comme le "dynamic programming". Un seul bémol : le formateur est rapide dans ses explications, et même s'il laise ses slides et son code en téléchargement, il est bien difficile de suivre la totalité de sa réflexion.

Showing all 10 reviews on CourseDuck

Read all 1,647 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100