Generate Parentheses: 22 - Dynamic Programming interview @ google, apple, amazon, meta, microsoft

preview_player
Показать описание

#dynamicprogramming #String #backtracking #leetcode #medium #technical #interview #question #problem #softwareengineer #developer #optimalsolution #bruteforce #googleinterview #amazoninterview #facebookinterview #appleinterview #microsoftinterview #google #facebook #microsoft #amazon #apple #meta #bloomberg #timecomplexity #spacecomplexity #infosys #tcs

Learn to solve this amazing Leetcode medium, Dynamic Programming + String problem that has been asked in hundreds of technical interviews at companies like Google, Facebook, linked in, Microsoft, Meta, apple, Uber.

LeetCode Problem: Generate Parentheses
Leetcode: 22

Not stopping till we get employed in FAANG.

This Problem was recently asked in following companies in Technical Coding Interview,

Amazon technical interview,
Adobe technical interview,
Apple technical interview,
Bloomberg technical interview,
Microsoft technical interview,
Uber technical interview,
Lyft technical interview,
Oracle technical interview,
Huawei technical interview,
TikTok technical interview,
Facebook technical interview,
Google technical interview,
Yahoo technical interview,
ServiceNow technical interview,
ByteDance technical interview,
Infosys technical interview,
Zoho technical interview,
TripAdvisor technical interview,
C3 IoT technical interview,
Walmart Global Tech technical interview,
Intuit technical interview,
Goldman Sachs technical interview,
Yandex technical interview,
Salesforce technical interview,
Tesla technical interview,
Grab technical interview,
Paypal technical interview,
tcs technical interview,
eBay technical interview,
Nvidia technical interview,
Snapchat technical interview,
Spotify technical interview,
Wish technical interview,
FactSet technical interview,
Zoom technical interview,
Arcesium technical interview,
razorpay technical interview,
Zenefits technical interview,
-------------------------------------------------------------------------------------------------------------------------
(Contact me for Business Inquiries):

GitHub Repository for Questions solved so far:

(Support the channel, if videos helps you in any manner... Give me a Coffee)

About me and My Purpose:

I am a software engineer with 5+ years of experience @ Non-FAANG company. I have always been bad at coding and really bad at programming interviews. So, once I got employed in IT industry, I only worked on operational activities (just so I can avoid coding).

But deep down I always wanted to work at an Elite IT company. So, I decided to face my fears, and to master coding & technical Interviews. I started with LeetCoding 1 problem a day. But I was facing issues with consistency, I would solve LC problems for week, and then drop it for 2-3 weeks. This lasted till 6 months.

And upon deeper investigation I found that I was not committed enough. Then suddenly my wife gave me an idea, that rather then focusing on solving a LC problem for my-self, why don't I commit to make videos on solving the LC problems. And try to complete at-least one video every alternate day. Hence, I started this channel.

My ultimate aim is to get into FAANG company, and also create a channel in such a way that anyone wants to get into FAANG, if they just follow my channel, they should be able to clear all the FAANG Technical Interviews.

Here are few more reasons on why I started the channel.

1) To have a motive for me to solve leetcode problems.
2) In order to solve a LC problem, first I have to really understand the problem and explain my thought process, which solidifies my concepts.
3) I can document my progress. Also learn a new skill on how to run a YT channel.
4) My work can help other software engineers.
5) I can have something cool to mention in my linked-in and resume.
-----------------------------------------------------------------------------------------------------------------------------------

Here is a list of my dream Companies:

FAANG,
Meta,
Facebook,
Google,
Amazon,
Netflix,
Microsoft,
apple,
doordash,
roblox,
stripe,
instacart,
uber,
lyft,
twitter,
linked In,
pinetrest,
bloomberg,
robinhood,
Goldman Sachs,
box,
two sigma,
byte dance,
tik tok,
air bnb,
nuro,
ui path,
oracle,
twitch,
data bricks,
waymo,
dropbox,
coinbase,
snowflake,
snap,
nvdia,
broadcom,
slack,
intel,
cisco,
indeed,
salesforce,
reddit,
wayfair,
okta,
splunk,
service now,
coursera,
square,
upgrade,
mozilla,
yelp,
unity,
ebay,
affirm,
stach adapt,
amplitude,
github,
wish,
brex,
etsy,
chime,
shopify,
amd,
GoDaddy,
IBM

Introduction: 00:00
Understanding the Problem Statement: 00:32
Brute Force: 02:34
Optimal Solution: 04:02
Coding: 12:20
Рекомендации по теме
Комментарии
Автор





Java Solution


class Solution {
public List<String> generateParenthesis(int n) {

List<String> ans = new ArrayList();
backtrack(ans, new StringBuilder(), 0, 0, n);
return ans;
}

public void backtrack(List<String> ans, StringBuilder cur, int open, int close, int max){
if(cur.length()==max*2){
ans.add(cur.toString());
return;
}

if(open<max){
cur.append("(");
backtrack(ans, cur, open+1, close, max);

}
if(close<open){
cur.append(")");
backtrack(ans, cur, open, close+1, max);

}
}
}

DestinationFAANG
Автор

Could you please explain how is your solution a dynamic programming solution? You are calling recursion but not saving it any where to stop the recomputation. Its simple backtracking based solution, isnt it?

Chanmishra