Number of Dice Rolls With Target Sum | Recursion | Memo | Bottom Up | Leetcode 1155
Whatsapp Community Link : https://www.whatsapp.com/channel/0029Va6kVSjICVfiVdsHgi1A
This is the 76th Video of our Playlist "Dynamic Programming : Popular Interview Problems".
In this video we will try to solve a very good DP problem - Number of Dice Rolls With Target Sum (Leetcode 1155).
We will solve it using Recursion Memoization as well as Bottom Up DP.
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 : Number of Dice Rolls With Target Sum
Company Tags : Microsoft, Amazon
My solutions on Github(C++ & JAVA) : https://github.com/MAZHARMIK/Interview_DS_Algo/blob/master/DP/Number%20of%20Dice%20Rolls%20With%20Target%20Sum.cpp
Leetcode Link : https://leetcode.com/problems/number-of-dice-rolls-with-target-sum/
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 : The approach uses dynamic programming with memoization to avoid redundant computations. The solve function recursively calculates the number of ways to achieve the target sum by exploring all possible dice rolls. The results are stored in a 2D array t to avoid recomputation. The numRollsToTarget function initializes the memoization table and calls the solve function to obtain the final result. The modulus operation is used to prevent integer overflow by keeping the result within the range of 10^9 + 7.
Approach-2 Summary : The approach utilizes dynamic programming with a 2D array t, where t[i][j] represents the ways to get sum j using i dice. The algorithm iterates through dice, target, and faces, updating the table based on previous results. The final answer is t[n][target], and a modulus operation is applied to prevent integer overflow. The modulus operation is used to prevent integer overflow by keeping the result within the range of 10^9 + 7.
╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝
✨ Timelines✨
00:00 - Introduction
3:03 - Thought Process + Tree Diagram
6:35 - How to write the Recursion + Memo
15:33 - Code Recursion + Memo
18:23 - Bottom Up Explanation
23:22 - Recursion code to Bottom Up Code
26:15 - Code Bottom Up
#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