Knight Dialer | Recursion Memoization | Bottom Up DP | Google | Dropbox | Leetcode 935

Subscribers:
92,300
Published on ● Video Link: https://www.youtube.com/watch?v=pOmSGFPcMjQ



Duration: 33:47
3,329 views
184


Whatsapp Community Link : https://www.whatsapp.com/channel/0029Va6kVSjICVfiVdsHgi1A
This is the 74th Video of our DP Playlist.
In this video we will try to solve a very good DP problem - Knight Dialer (Leetcode -935).

I will explain the intuition so easily that you will never forget and start seeing this as cakewalk EASYYY.
We will do live coding after explanation and see if we are able to pass all the test cases.
Also, please note that my Github solution link below contains both C++ as well as JAVA code.

Problem Name : Knight Dialer
Company Tags : Facebook, Dropbox, Microsoft, Google
My solutions on Github(C++ & JAVA) : https://github.com/MAZHARMIK/Interview_DS_Algo/blob/master/DP/Knight%20Dialer.cpp
Leetcode Link : https://leetcode.com/problems/knight-dialer/

My DP Concepts Playlist : https://youtu.be/7eLMOE1jnls
My Graph Concepts Playlist : https://youtu.be/5JGiZnr6B5w
My GitHub Repo for interview preparation : https://github.com/MAZHARMIK/Interview_DS_Algo
Subscribe to my channel : https://www.youtube.com/@codestorywithMIK
Instagram : https://www.instagram.com/codestorywithmik/
Facebook : https://www.facebook.com/people/codestorywithmik/100090524295846/
Twitter : https://twitter.com/CSwithMIK


Approach-1 Summary (Recursion + Memoization) :
The code defines a class Solution with a method knightDialer that calculates the number of ways a knight can move on a phone dial pad to form a number of length n. The dial pad has ten digits, and the knight can move according to certain rules defined in the adj matrix. The code uses dynamic programming with memoization to optimize the calculation, storing intermediate results in the 2D array t. The main function initializes t with -1, and the recursive solve function calculates the number of ways to form a number of a given length starting from each digit. The final result is the sum of these counts for all starting digits. The modular arithmetic with a constant M is applied to avoid integer overflow.

Approach-2 Summary (Bottom Up) :
The code defines a class Solution with a method knightDialer that calculates the number of ways a knight can move on a phone dial pad to form a number of length n. The dial pad has ten digits, and the knight can move according to certain rules defined in the adj matrix. The code uses bottom-up dynamic programming to build a 2D array t, where t[i][j] represents the number of ways to form a number of length i when the knight is currently at digit j. The algorithm iterates through the length of the number and updates the counts based on possible moves, and the final result is the sum of counts for all starting digits. Modular arithmetic with a constant M is applied to prevent integer overflow.


╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝

✨ Timelines✨
00:00 - Introduction

#coding #helpajobseeker #easyrecipes #leetcode #leetcodequestionandanswers #leetcodesolution #leetcodedailychallenge #leetcodequestions #leetcodechallenge #hindi #india #coding #helpajobseeker #easyrecipes #leetcode #leetcodequestionandanswers #leetcodesolution #leetcodedailychallenge#leetcodequestions #leetcodechallenge #hindi #india #hindiexplanation #hindiexplained #easyexplaination #interview#interviewtips #interviewpreparation #interview_ds_algo #hinglish #github #design #data #google #video #instagram #facebook #leetcode #computerscience #leetcodesolutions #leetcodequestionandanswers #code #learning #dsalgo #dsa




Other Videos By codestorywithMIK


2023-12-06Largest Odd Number in String | Amazon | Leetcode 1903
2023-12-05Calculate Money in Leetcode Bank | 2 Approaches | O(n) | O(1) | Leetcode 1716
2023-12-04Count of Matches in Tournament | MICROSOFT | Leetcode 1688
2023-12-03Largest 3-Same-Digit Number in String | Leetcode 2264
2023-12-02Minimum Time Visiting All Points | Diagram Explanation | Maths Explained | Media.net | Leetcode 1266
2023-12-01Find Words That Can Be Formed by Characters | META | Leetcode 1160
2023-11-30Minimum One Bit Operations to Make Integers Zero | Detailed Explanation | LinkedIn | Leetcode 1611
2023-11-28Number of 1 Bits | 4 Approaches | Time Complexity | Apple | Microsoft | Amazon | Leetcode 191
2023-11-27Number of Ways to Divide a Long Corridor | Clear Intuition | Dry Run | Leetcode 2147
2023-11-27Count Beautiful Substrings II | Detailed Approach | Intuition | Leetcode - 2949 | Weekly Contest 373
2023-11-26Knight Dialer | Recursion Memoization | Bottom Up DP | Google | Dropbox | Leetcode 935
2023-11-26Largest Submatrix With Rearrangements | Build Intuition | 3 Approaches | Leetcode 1727
2023-11-24Sum of Absolute Differences in a Sorted Array | Build Intuition | 2 Approaches | Leetcode - 1685
2023-11-23Maximum Number of Coins You Can Get | Greedy | 2 Approaches | Leetcode - 1561
2023-11-23Maximum Xor Product | Super Detailed | Leetcode Weekly Contest 372 | Leetcode-2939
2023-11-22Arithmetic Subarrays | 2 Approaches | Sorting | Without Sorting | Leetcode-1630
2023-11-21Diagonal Traverse II | 2 Approaches | Map | BFS | GOOGLE | Leetcode-1424
2023-11-20Count Nice Pairs in an Array | Simple Clean | Important suggestion | AMAZON | Leetcode-1814
2023-11-19Minimum Amount of Time to Collect Garbage | Simple Clean | Leetcode-2391
2023-11-18Reduction Operations to Make the Array Elements Equal | Intuition | Leetcode-1887
2023-11-18Frequency of the Most Frequent Element | Binary Search | Sliding Window | META | Leetcode-1838