Algorithmic Problems in Java (+INTERVIEW QUESTIONS)
4.4 (720 ratings)
8,070 students enrolled

# Algorithmic Problems in Java (+INTERVIEW QUESTIONS)

Backtracking, dynamic programming, Sudoku, knapsack problem, binpacking, closest pair of points, recursion, monte carlo
Bestseller
4.4 (719 ratings)
8,065 students enrolled
Created by Holczer Balazs
Last updated 4/2019
English
English [Auto]
Current price: \$119.99 Original price: \$199.99 Discount: 40% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
• 7.5 hours on-demand video
• 10 articles
• Access on mobile and TV
• Certificate of Completion
Training 5 or more people?

What you'll learn
• Understand backtracking
• Understand dynamic programming
• Understand recursive approaches
• Solve problems from scratch
Requirements
• Basic Java
Description

This course is about the fundamental concepts of algorithmic problems, focusing on backtracking and dynamic programming. 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:

• what are recursion and recursive methods

• linear and binary search

• tower of Hanoi problem

Section 2:

• what are selection algorithms

• quickselect algorithm

• the secretary problem

Section 3:

• what is backtracking

• n-queens problem and Hamiltonian cycle problem

• knight's tour problem

• Sudoku game

Section 4:

• what is dynamic programming

• knapsack problem

• coin change problem and rod cutting problem

Section 5:

• bin packing problem

• closest pair of points problem

Section 6:

The first chapter is about backtracking: we will talk about problems such as n-queens problem or hamiltonian cycles, coloring problem and Sudoku problem. In the second chapter we will talk about dynamic programming, theory then the concrete examples one by one: fibonacci sequence problem and knapsack 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, EPAM etc.)

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

Who this course is for:
• This course is meant for newbies who are not familiar with algorithmic problems in the main or students looking for some refresher
Course content
Expand all 74 lectures 07:38:33
+ Recursion
9 lectures 52:13
Preview 08:43

Note: we can usually solve a problem either with recursion or with iteration. Several algorithms - especially the divide and conquer ones - rely heavily on recursive method calls.

Preview 05:04
House building problem
04:00
Factorial function
07:13
Euclidean algorithm - greatest common divisor
02:29
Linear and binary search introduction
03:30
Linear and binary search implementation
07:48
Towers of Hanoi problem introduction
06:00
Tower of Hanoi problem implementation
07:26
+ Selection Algorithms
6 lectures 42:18
Selection algorithms introduction
05:50
Quickselect introduction - Hoare algorithm
07:39
Quickselect simulation
08:04
Quickselect implementation
08:26
Advanced selection - median of medians, introselect
07:21
Online selection - the secretary problem
04:58
+ Backtracking
22 lectures 02:22:52
Backtracking introduction
06:06
N-queens problem introduction
10:10
N-queens problem implementation I
09:21
N-queens problem implementation II
06:16
Hamiltonian cycle introduction
09:01
Hamiltonian cycle illustration
05:55
Hamiltonian cycle implementation I
10:16
Hamiltonian cycle implementation II
07:01
Coloring problem introduction
09:12
Coloring problem implementation I
07:17
Coloring problem implementation II
05:24
Knight's tour introduction
04:06
Knight's tour implementation I
10:32
Knight's tour implementation II
04:48
UPDATE: Knight's Tour
00:21
Maze problem introduction
03:13
Maze problem implementation I
07:21
Maze problem implementation II
04:09
Sudoku introduction
06:29
Sudoku implementation I
08:36
Sudoku implementation II
03:27
NP-complete problems
03:51
+ Dynamic Programming
17 lectures 02:09:44
Dynamic programming introduction
03:22
Fibonacci numbers introduction
05:34
Fibonacci numbers implementation
07:57
Knapsack problem introduction
12:49
Knapsack problem example
13:18
Knapsack problem implementation I
08:07
Knapsack problem implementation II
04:26
Coin change problem introduction
09:18
Coin change problem example
06:04
Coin change problem implementation
11:40
Rod cutting problem introduction
05:24
Rod cutting problem example
08:14
Rod cutting problem implementation
08:44
UPDATE: rod cutting implementation
00:20
Subset sum problem introduction
06:30
Subset sum problem example
08:53
Subset sum problem implementation
09:04
+ Other Algorithmic Problems
4 lectures 31:18
Bin packing problem introduction
05:47
Bin packing problem implementation
06:52
Closest pair of points problem introduction
08:50
Closest pair of points problem implementation
09:49
+ Common Interview Questions
13 lectures 58:00
Palindrome problem overview
00:08
Palindrome problem solution
07:59
Integer reversion problem overview
00:07
Integer reversion solution
07:00
The two eggs problem overview
00:11
Two eggs problem solution I
08:01
Two eggs problem solution II
11:39
Duplicates in an array problem overview
00:08
Duplicates in an array problem solution
07:56
Anagram problem overview
00:04
Anagram problem solution
03:51
Largest sum subarray problem overview
00:05
Largest sum subarray problem solution
10:48