Тёмный

Count Ways to Build Good Strings - Leetcode 2466 - Python 

NeetCodeIO
Подписаться 181 тыс.
Просмотров 8 тыс.
50% 1

Опубликовано:

 

15 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 22   
@rowanus116
@rowanus116 4 месяца назад
regardless of previous string formulation as long as they have the same length, the decision is the same, either choose 0 or 1, that's why caches work here.
@anand.prasad502
@anand.prasad502 Год назад
3:18 Ans is "NO", it is length of string not the string, so it can be different. "000" and "100" result can be different;
@uptwist2260
@uptwist2260 Год назад
thanks for the daily
@DavidDLee
@DavidDLee Год назад
If you go backwards in the iterative solution, the result is dp[0]. However, you can't just set dp[high] = 1 and keep everything else 0. Also, in the general case, max(dp[low:high + 1]) might be > 1.
@TheNishant30
@TheNishant30 9 месяцев назад
one of the test cases blows up the javascript stack even with memoization. low is 100000, high is 100000, zero is 2 and one is 8.
@ouchlock
@ouchlock Год назад
spent an hour with permutation approach, and it turned out to be so simple, muahh %(
@shubhaverma5697
@shubhaverma5697 2 месяца назад
i think my mind broke when you went from backtracking to linked list lol
@arpanbanerjee6224
@arpanbanerjee6224 Год назад
Great exoplanation as usual- java solution class Solution { Integer[] dp = null; int mod= 1000000007; private int helper(int low, int high, int zero, int one, int currLen){ if(currLen>high) return 0; if(dp[currLen]!=null) return dp[currLen]; int res=0; // if within range we wll include this string if(currLen>=low){ res=1; }else{ res=0; } res+= helper(low,high,zero,one,currLen+zero)%mod +helper(low,high,zero,one,currLen+one)%mod; dp[currLen]=res%mod; return dp[currLen]; } public int countGoodStrings(int low, int high, int zero, int one) { dp=new Integer[high+1]; return helper(low,high,zero,one,0); } }
@blazze_
@blazze_ Год назад
Bro is so emotional when explaining the problem.
@ronbuchanan5432
@ronbuchanan5432 Год назад
What's the time complexity?
@deadlyecho
@deadlyecho Год назад
Can we solve using a combinatorics approach ?
@kaushik.aryan04
@kaushik.aryan04 Год назад
This was a really good question
@abaddon6206
@abaddon6206 Год назад
Can we do this problem using brute force and applying permutation and combination. Because in this problem all we have to find is the combination of the good string?
@aniketmahangare8333
@aniketmahangare8333 Год назад
Thank you so much man.
@krateskim4169
@krateskim4169 Год назад
Thank you so much
@MP-ny3ep
@MP-ny3ep Год назад
Thank you!
@sandeepmourya8922
@sandeepmourya8922 Год назад
Hey NeetCode or anyone reading this, I really need your help I cannot find single resource for good explanation of this problem: 2673. Make Costs of Paths Equal in a Binary Tree (It has no editorial on Leetcode) Everyone has almost used the same solution int minIncrements(int n, vector& cost) { int res = 0; function dfs = [&](int i) { if (i >= cost.size()) return 0; int a = dfs(2 * i + 1), b = dfs(2 * i + 2); res += abs(a - b); return cost[i] + max(a, b); }; dfs(0); return res; } But NOOOOO one explains clearly whyy do we have to return cost[i] + max(a, b). Any help from anyone in the comments section will be appreciated.
@kaushik.aryan04
@kaushik.aryan04 Год назад
You explained it really well but the code in python is very different when compared to java or c++ This is my code in java ( tabulation) class Solution { int mod = 1000000007; int[] dp ; public int countGoodStrings(int low, int high, int zero, int one) { dp = new int[high + Math.max(high , low) + 5]; // filling base case array for(int i = 0 ; i < high + 5 ; i++){ if(i >= low && i high) dp[i] = 0; } for(int i = high ; i >= 0 ; i--){ int left = dp[i+ zero] % mod; int right = dp[i + one] % mod; dp[i] = dp[i]+ (left+ right) % mod; } return dp[0]; } }
@mohdmaaz6651
@mohdmaaz6651 Год назад
Java Solution using HashMap: public int countGoodStrings(int low, int high, int zero, int one) { int mod = (int) 1e9+7; HashMap dp = new HashMap(); for(int i=high; i>=0; --i){ if(i>=low) dp.put(i, (1+dp.getOrDefault(i+zero, 0)+dp.getOrDefault(i+one, 0))%mod); else dp.put(i, (dp.getOrDefault(i+zero, 0)+dp.getOrDefault(i+one, 0))%mod); } return dp.get(0); }
@name_surname_1337
@name_surname_1337 9 месяцев назад
do you know that fb doesn't ask DP at all? stop doing these fake thumbnails pls
@GameFlife
@GameFlife Год назад
bruh say feel good until tmr xDD
@amalvijay8222
@amalvijay8222 Год назад
1st comment and big fan
Далее
ДОМИК ДЛЯ БЕРЕМЕННОЙ БЕЛКИ #cat
00:38
ЗАБЛУДИЛИСЬ В ТРАВЕ #shorts
00:25
Просмотров 419 тыс.
I Solved 1583 Leetcode Questions  Here's What I Learned
20:37
Minimum Penalty for a Shop - Leetcode 2483 - Python
14:58
LeetCode 1397. Find All Good Strings
54:07
Просмотров 2,2 тыс.
Matchsticks to Square - Leetcode 473 - Python
15:48
Просмотров 27 тыс.
ДОМИК ДЛЯ БЕРЕМЕННОЙ БЕЛКИ #cat
00:38