0% found this document useful (0 votes)
60 views91 pages

DP Ravi

This document discusses two approaches to solving the coin change problem: tabulation and recursion. Tabulation, also known as bottom-up, involves filling a table with solutions to subproblems and using those to solve the overall problem. It avoids recomputing overlapping subproblems. Recursion, or top-down, directly computes solutions by breaking the problem into subproblems and combining their solutions. Tabulation has better time and space complexity than recursion for this problem due to memoization and avoiding recomputation. Various optimizations like using a fixed number of variables instead of a table can further improve the space complexity of tabulation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views91 pages

DP Ravi

This document discusses two approaches to solving the coin change problem: tabulation and recursion. Tabulation, also known as bottom-up, involves filling a table with solutions to subproblems and using those to solve the overall problem. It avoids recomputing overlapping subproblems. Recursion, or top-down, directly computes solutions by breaking the problem into subproblems and combining their solutions. Tabulation has better time and space complexity than recursion for this problem due to memoization and avoiding recomputation. Various optimizations like using a fixed number of variables instead of a table can further improve the space complexity of tabulation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 91

Programming

mic pre-sequisites.
Bottom up -
Recussion
① Tabulation
-

② memorization-top down fond to store the value of sub-


problems in some map/table
Fibonacci number
# --

overlapping sub problems


do thi
↑ caseedp [nti

Ration
TCOIN
SCT0IN) +
a
o
section assay
station up
have case to the required
Sie
Ideclare dp (n+i]
② base cale TCOIN
favz
dpl0] 0 =

-> SCOINS
dp[T 1
=

-par
⑭space improvement
③ recusion relationship use two variables instead of assay.
& (i=2; i n;it=
it TC3
o(N)
per:
(dp/i]=dp [j-1]+dpfi-2]; pevz:
i-2 890(
↳ ain= por+kevz
3
plevz: por
Now:
cust

-
ID problems
9
-> it's a problems
count the total
① rum of ways
⑧ min) maxoutput
possible best
all convers
By ways

count allways ways


shortcut
of index
ify to present the problem in terms
statement
index as
on that
to problem
② do all possible stuffs
all
③ sum of all staffs - count ways
all staffs) I find mil
min(of TC0(N)

jump
① Why the greedy doesn't work here
out
wing peedy you miss some
can

significantjump in Future

10 20 30 10 03
2 3
O I

Reussion
-
48

index
based
① that index
⑧ do all staff
on

⑨ take the
min (all stuffs)
4(n-1) ->
energy required to reach (n-1) from 0

Kindexlindex == of returno;
-a(index-1])
Ilindex-1)+abs/a/index]
left:
is[index
Cindex-23)
Sight=4/index-2)+abs(a(index]
- a

return min(left, sight


S
sub problems.
overlapping
-
2 3 4 5
01

60, 50]
n6
memorization
=

10,
[30, 10,60,
convertthis recursion
to up

40 SCOIN
(5)↳ TCOIN),
=

&(4) 30(1)
=

-2
) 20 =

/
() 30 =
&(1)
Tabulation
- (4+1)
-40
↑(i) ①
I
decleue
fill the
dp: A nay
base case,

10
0
dpC0T
=

-abs(a[i)-a[i-)
=
ifI to at
③ Dos loop,
left=dp[i-B -a[i-2])
iPiss=dp[i-2]+abs(ali)
light
left, sights
min(
Tabulation space optimized dp[i):
TS30(N)
T20(w)
seOl S-OINS
-
Follow-up ie its
is it2

umps t
↑H,
i+2, i13,.......,

otimize from
wecan sla(K)
TC20(NEK)
SCS0(N)
iP K= 4, 4 variables are needed to
stone last a values

iPatination is notneeded
Let
got
of
recursion

ecided
conceptof

means
notickieat
it
&(ind) ->
olen
9 ilind==of return ainds; ice
returno;
i lind col
Plind-e);
pick:a find]
+

notpick 0+ Plind-y;
=

return max (pick, notpick);


3

How optimizeuss'
to b problems, memoire the

RIP -> sun blw 0 to index

4) -> sum bw 0 to index 2


menoization secussion

TC50(N)
S-0(N)

egdens
5
here, first I lastcannot
be together since it's

adjacent

TCe0(N
S2OLN
-
10 50 I dayo -

5 100-days
"761
greedy + 50+

here
fails
Recussion greedy
--
n 4.
-
=

Daiossible wass
greedy
sion
⑪andstuffon index the

③ Find may/all ways

fing
problem
sub

dy 10,1,2, 3) ↳> to
initialize thebeauties
are

N 4
1

dP(N]/4] apassay
--

(Nx4) size

is"ut4
(bottom-up
Tabulation
-
the similar size of assay space
-
optimization
declare
Or
d[n]/4]
base cases
② -
(aCo][r], a(o][2))
d40]C0] max
=

dp (0] (0):max (aco][0],


afo][23)
max/a/o]/0], afo) (is)
dp90]S27:
(a[0][0], a90] [r], a90j(23) 0(Nx4x3)
[3]
dpSO] max
= TC-
Sc ->0(4) 2011

octurned in the
⑰return whatyou
initial call in secussions
secussion (or, the

TC- 0(Nx 4x3]


Sc-0(Nx4
↳DP on GRIDS/2D matrix
-

⑧countpaths e
with obster

③ path
min sum

④maxpath
sum

⑤tangleastfront o

ita
count all ways, use recursion
I
ways?

How
-
to write securence 2
terms
in of ex
①express everything Now, column)
0,0)- (m-1,n-1) & do all duffs
on the index i, j
ormic
③ sum of
allways, max

↑(iii) -

are
5iR(i d
Tem
= 0
=
&& i = =

seturn 1;

insiconical (path length)


see 0
return 0;
+ in
up:1(i-1,j)
left:1 (i,j-1)
up-left;
I return
optimize recussion
-
useap (memorization 112,4

·'
up leftH2, is
12
= 3

&(0,2)

potent
ayeit ↳ plants
is left
&10,0
↳PH, ⑱ >O

40,e
->

- ,

dadane dp[m][n], initialized with


recursion call
② stove the result,
thatyou are
returning from
not
calculated
already
a

⑤ Check is answer is
TCe O(NXM/
xms
See
and +
DP
M-1
Tabulation (bottom-up) Los /i 0 = ->

- -

101 ->U-1
<n] 0
I declare, de [m]
=

0) dPC0J10] 1 =

&dj
Sin/i
=

=
=
= 0
② declase base case
left 0
dse
=

=0,
1 up
dp[o][0] =

iP(i 0) <up=d4 [i-1] [5]


in to look [5-1
⑧ State all states it(jo left=dp/i]
write + left'

Copy the recurrence I
,pSi][s]=up
01.MXN) 3
TC
30-
30(mxN) ↳stern ap [m-1(n-is
otimization it
space column, spare optionize
few
- we can
a
->
is there is a few row

D(j)
dpsi)(5)
up
=
+
di-
dijell
I dp[n] 0
=

emp't dpn) M2 temp(n) 0


4/1 Pos (i 0
-> = -> =

n-1)
- stand 9 dos/j 0
->
.- =

SiP(i = 0
=
&&j 0) == d4[9T[] = 0;

elses (i-B
[37+d4[]
Si = dp/i-
TC-0 (MXN)
(j-
emp/i):dp [j7 +terp
Sc-0(N up-tamp
its
Recession
- mization

3
3

Tabation
optimization

2 2
ec not considered
summation
is
Base cases,

ithis path

-
-

0) return [o] [o];


(ip/i
a
=
=
0 &d j = =

INT-MAY;
iP(ico ";<0) eturn
up a (i)[s) + 4(i-1,5)
=

left: a(i)[s] +41i,5-1


stwen minlup, left
S

Icompare (iii)
paths
mination
② explore all
min ooth
⑧ takethe
treation -m)
Tc-0(N
0(NxM)
Stolpathlength)
>

(M-/AN)

"ulation optimization

2)
getting
ending point point a variable

Fixed
①-- #x
2 3

6 7
3

10
8 96

the
try paths
ession -- as
① representin (i,i)
② explore all paths (14)
③ mix of all
youths
resence
will startfrom 10., (40,0)
sowlany
column
to last
path sum from 10,0) hum of coll
110,0) min
2+st...
to
TC, 2
↑(i,i)
return a(n-i[s]; SC-0(N)
s ip (i=-n-ll ;
downdiy euny?
diagonal-a[i](s]+P(i+1,;+1;
setuen,min (down, diagonall
3 dp/i][5]:
memorization
-
dp[n][n] ·TCT
St
·cat-(a)
Tabulation space optimisation
-
tease dp(n] (n)

Lasliosis,a(n- (s

2 3

0; i- 7
is 6
=

Pos(i=n-2; 3-7
3

10
=;i
=
0;
896
"Los I [j]
aCi3[s]+d4(i+
=

I
only psev
sow
9 /st need
-
d=
+dSi+D
(iTs]
-we
assentsaw
down dg min(d, dg)
a =

E
diagonal dp (i)(s]:
I Re
E
dp [0] /0]
setwn
N
TSY O(NY
SCT
0(NXN) TLE

nation
TLE
Talization optimization
Falling path sum/variable starting a
ending points.
-Max

↓max path sum


is
any cell
sow
from
last sow

⑭ by outall ages
secursion
-
in terms of Isi
express
① everything
write base case
I
all the paths (NY
⑧ explore
⑤ max
among
all fraths
Memorization
not
- memorization
secussion - overlapping ->
a
sub problems

↑ I ↑(ii)
S
'iP5011i M)
declare dp[N][m]
return Number.

if (i
Max.
=

0) unaid[i];
Negative:

⑰v) P(n-1,3)
==

if (dp(i][i]
[i][5] + 4(i-1,j)
->

let =a

Lt1d=a [i7Y]
+i-,3-D:
R(x-1,2)
A(n-s,) let ad a(i)(3] +
4(i-1, IH);
Almo, 0f
=

Math. Max (S,Id, ,d);


setwen df(i)():
m-1) 3
do (s 0 ->

0/NxM)
=

TCT
2n,I): + O (N)
$ (iii)
S20(Nx M)
to reach
Miss - may puth sum

the firstrow
cell in
from any
↳easence destination
-have
care,
butof bound
-

t
at in

insist cases

-
[Y Colo
or col?M

↑(i,,)
return Number.
Max.
Negative:
as iP(sc011is= M)
if (i 0)
return
==
a [o] [i];

let [i][5] + 4(i-1,j) I:


=a
4i-,
let1d=a [i] [T] +
let ad (i)(3]+4(i-1, IH);
a
=

,d);
setuen Math. Max (S,Id,
3
TCT
3N exponential
TE 99 O(N)
Tabulation (bottom up]
-- d$[a][M]

I
① declare
of away d/[0] [1] aCo]/]
0 em-1
for (i
=

base cases
=

② write ↳os 4-l


(iii) a connect looks
to (i 1 =
-

③ observe
I for (j=0- m-1)
3v a/i][s]+d4[i-1(c)
(i7+dp[- (;-B
=

iP(-10) 1d a (1)
=

iR(stim) id a (i)(5)+dPi- (its


=

1d, 9d);
(M) df[il[]=MaxCu,
0 (N
+M) 0
+

3
TOS
SC 0(wxM) E
mayi=df[n-D (ot
&(1 1 =
- m)
dp[n-y/s))
maxi:max/maxi,
return moxi;
optimization
e
cusing
pering,
Go 1i = 0 em-1
(1)=a[o]/)
↳os (i 1 4-l
=
-

I for (j=0- m-1)


30 a/i)[]+d() per
(;-I
=

iP(-10) 1d a (1) (i7 +dD


=

por
(sty
iR(st1cm) id a (i)(5) + D
=

#fil[)=MaxCu, 1d,ed);
c

freu=as
,
mayi=df[n-D (ot
&(1 1 =
- m)
dp[n-y/s))
maxi:max/maxi,
return moxi;
TC 0(NxMS +O(M)
SC2O(N

memorization
105
Recession 105
utation spacerization
essy
pickup, DPOn GRIDS, 3D DP

-
3 1
3427
5535
ans
12 97
+

fixed starting point ->


vasiable ending
point
paths by Bod
Max (All paths by
Alice +
All
sussion
Passion & (izit)
fesses (in,ji)
in destination
①express everything
cases
-> I out of found
& write base
all posibble paths
XNY
② explae
③ Max Sua RIP
↑ (ie, I, in, j2) ↓
1132 m) it1,9 it, it
3 113220
<
it, 5-1
iP (9010 11 ji m
==

Alice Bob
path
setwntei]I:
combos of
Ieturn 3x3= 9
-
iP(i 4 =

1
=

(i];,Ii
(j]; a [i]
5 iR (5, 5) return
=

[i][j2]:
=

else return a (i)(5) +a

3
Maxi =

0
-1
to + 1)
Pos(d
9 dos (diz - to +1)
5,+dj, ju+die))
(i)()+Pit,
->

"PIs, =je) maxi-max/maxi, (52]+P(i+, jitdijetdi))


[i7/is]+a[i]
=

maxi-nax (maxi,
a
de

3 Maxi;
setwen dp [i] (;,][iz]
=

satun maxi;
-

3
TC (3Nx
3N) - exponential
967 O(N)
·zation
isis (in
↓ ↓

N M M

de- [N3x/M7x[m]
states
([j][iz] aumber of
different
ToO(NxMyM)x9,
+O(N
3- P/NxMXM)
cussion
Ration
roization
21
21

Tabulation
-

dp (n) [m] <m]

I
Los (3x-0 to mil
I Posli2 =0 tom-1)

base &iP(j, ==je) dp[n-i) (j0]


[i2)= grid (n] (91), (92];
alt
ele d[n-i)(ii] (;2]= gid(n-1)(i)+gid[n-1
E
3

for (i n-2
=
to 0b
to m-l
9 hos (5 = 0

to M-1
9 Pos(s=0
E

, 21
optimization
e
-> two
vasicebles
ID dp
ID alp
2D alp ->

2D dp
3D dp ->

et sum equals to
target, identify CP on
subsequences
subsequences/subset
subsets
contagious (non-contagious
subsequence -

assey -
0,2] -
[1,3,2] -
X
-
12,i] v
v
[3,2]
check it of gives
them
all subsequences I any
-> generate
a sum of K
set
Ms power
M2 - secussion

(index, taelf
Recursion
everything
= in
① express
ofthatindex
② explore possiblities - a [indax]
the
notpastof
asindex] front of the subsequence
subsequence
ure/false
Plind, targetf
Sip (target== of
return taue;
024)
(a(0) tgets; TI
iPIind==0f return
==

Se O(N)
bool nottake: I lind-1, target
bool fale=false
find]/
target: kind-1, farget a find]);
a
of -

take=

return false as not take;


3
Memorization
-
state

outthe
figure changing

Tage
103
ind < 103, target =

(NY
=

ind target TO +
i

[103+ 11
dp (103+17 x

Plind, targetf
return taue;
Sip (target== of
0f setwen (00]== targets;
stargets
iPIind==
bool led taint", asdlinds
bool fale=false
if (target:
take=
a
findand, target -afind]);

return false as not take;



3 dplind]/target]
Tabulation
-
dp [N] (target]

⑧cases [i]
tave
(07:
0-n-1) dp
101(i =

(0]]:bue
di[O] [a
② ni)
0
%os1 =

->K)
3 dos Starget.=1
E
I
3
secusion memorization
tre the

zation
tabulation space
option
te tree

subset sum 4Puences


prequal I

S1=S2:totalsum/2 -> five

is totalsum -odd -> false


Bue;
-> iPlan (0]
KS
<= peev[as [0]]:

tec

set into two subsets with absolute difference


l pastition min
a sum

Co, 2, 3, 4]

1,2 & 3,4 517-31:4


2
13 & 2,4 -> 1- 61 =

1,4 & (2,5) -> 15-51:0 us


fabulation for subset
sum a target

->
anp(4)[T]
(target) not
- [3,2,73 iP81=0, we are
picking
in subset
original problem
-

vxv xv
anything v x V
- ~xvvx 10 11 12
I
total sum:A
51-012345678
3 2 0
10 9 75
S2512
81=
6 8 12
92 =
totalsum-s1 abs di- 1288 2 I

aus=
2

2018 counts subsets with sun k

[1,2, 2,3] target s5


-

anse


(3)
in terms of find, targets
① express
all possibilities
② explore a retren
asks count the possibilities
question return ⑧ sum all of
->
in base case, alway
0 I
OK2Y)
oS

Alind, targel Recession


TO -
sctuen; - S60(N)
S iP(target== 0)
return (afind]=:targets?:
0;
iflind 0)
==
return up [ind](target];
->
iPIdp[ind](target]!=-1)
not pick: I(ind-I, target,dp
pick=0;
Rind-, target find]) dp
- a

<=taryelf
iP(afind] -- pick:
de [ind] [tasget]
setum pickt ootpick;
mization i

TC O(Nxsum)
0(wxsums O(NS
+

Ste secession
Ass

tabulation
-

①write base
cale

⑧ look atchanging parametess &

write nested looks


⑧ Copy requence
Sarget
dp(n)(sum+]
Pos(i 0 -n
= dp/iT90]
0)
=
1 =

iP (a9o] <>) dp/0][aco]] I =

Pos (i 1- ntl
=

3 Loss 0+ Sun)
=

E
seussence

3
TC o(Nxsum
S-0(NXsum)
3
Reon 3
memoration

tabulato space option


di Presence
lesss,
-
count partitions with given
the above question, the constraints
ase
II nums[i] (1000
in
I
target 1000
↳ O I nums (i) (1000
the base
modify
need to case
we

iP (ind 0) S
=
=

return
adnumco]==of
2;
if (sum = 0
=

num/o]] returns;
it(sum = 0
=

II sum==

setum 0;
3
b) 91)S2
(11-52
=

St fotalsum-s2

S2-S2=D
Totalsum -

D 2x52
totalsum
=

I
=

⑲g
Tatal sum D =

s2
=>

=
=

where target
↳ countof subset
Totalsum -D

51-S2 D -
=
-

3
5,2,6,4) 6
easel of Num(i]
=

46,4355,2) -totalsum-DI0
be even
10.7:3
⑤ totalsum hasto

secussion
spaceoptimization

I
o of knapsack I secusion to
single assay space optimised approach

Recession
-
out all combinations
try ↓
take the best total
Value

combination

&express everything in of index


tesons
f

I write base cases


(ind, WI

⑧ explore possibilities
all say weightwts 3,2,4 (n-, o
pick a not pick val- 30 406O
③ max call possibilities 100, 70,30
inde 0 1 2

AIR
P 60 ↓N
1(1,6)
&(1,2)
/40 IN /040N
My 40404) w
& [ind, wi
& iP (ind 0) =
=

W
Sit (not [o] <wI return valso]; It
2.

else return o; Sc-0(N


notTake 0+
=
Plind-1, wh
take= INT-MAX
valsind]+P(ind-o,w-nffind])
iP(wtind) w) price: =

retan max (Rick, notpick


3
memorization OTN-P
SO -w
- ↑

passess ind, w
changing- Si
de [N] [n+1]
TG-0(NXw
S->0(NXW) +0(N)
ASS

tabulation
-
cases
①base
in loops
⑧ changing params

Copy the recusence,
ind>
to no

nots 0 to w

dp (N)[w+Y
0
=

Recussion
13
memorization
13

Tabulation space
optimization
· sow
optimization
local minimum coins, infinite supplies patterns
-

outall combos to find target


bying
d min coins
take the combo
thathas -

ack.
--

infinite supply or multiple supply

eindwillsemain
ane

Rocussion
-- TC-012 exponential
I (ind, target SC
0IN
I in <ind== of
num[ind]) ==0) return target/rumfind]
, iP/target
-

letusn MAX-INT;
3

notpick:o+ Plind-,
targets
pick:INT_MAX
1+ I (ind, target-aum[ina])
pick:
iP( numfind) targets
return mathmin(pick, notRicky
3
memorization
-
ind, target
di[N] (target 1]
+

TCe O(NX Tasget

S-O(NxTarget) +
Otarget
Tabulation
-
case
① base
params ind, I
I changing
securence
⑧ Copy
dp[a] [target+1]
Los (T= tasgel
0 ->

if (T% af0] = 0)
=

dpCo][T]
=
T/ago)
ele
INT-MAX
dpO] [T] =

is
Ration 3
memorization
optimization
Tabulation space
3 3

sum subsequence

(1, 2,
ass= 3, of

tage;-'I
end
f
it i

way

/
⑲ Se
(2,3) (0,0)
- -3

(1,3,1)
-
(2): 3

51-52: target
se):
Difference
factionized
G
23. count
change, infinite
supply problems

Recursion
-
①express in
lind, target
② have cases
③ explore all possibilities
a nature
④sum all ways
To exponential
& (ind, IS
See O(targets
I inspect anfind]==0) return, deretuno:

I 5) -
memorization
not take:Alind-s,
take:O T-Afind]) changing params, ind, Target
take Pind, Id
iPansind] IT)
-

take O font 0 to t
return take- not

I OCN][FiT
Tabulation TCD OINXT
-
dp[N] [T+
S20(NXT) + 0
(fast
Dalton? (Tanso] 0)?1:0;
=

ind<n; ind+1
dos/ind=1;
9 dos IT 0; = T(target; +++)
3 nottake= dpfind-1][T]
[T- a [inds]
take:O
iPasind]c=T) take=dplind]
,p[ind] [Ty taket nottake
=

Saturn di (n-1](value)

24 unbounded knapsack
Recussion
-

Blind,wine (r)* val i

lind-1, wS
I

nottake 0 +
it
N al eval ( i n d] + Ri n d,w -wel i n g
=

Nata l ,
take=

incoffing
ice exponential cause
we are standing
atsame indusi

SC50(WH
memorization
-
not
ind,
&(N] /r++
Tabulation
-

case

Base
indepfont
⑧ ps,
w- o to not

⑧ the secussance
Copy

eclusion memorization
↳ 27
tabulation of space optimization
27
Todos optimize is
it to assay

5- Rod
cutting problem, Dassay space optimised
Recession
-

① explore in - Lind, N) -181,


possibilities not take AY, NS
I
-
all
③ explore -> Take
till index, what
is the max

⑧ setwen of
max all possibilities price obtained?
&(ind,w) 9
↑Plind== 0) (Nx price (0]):
setusn
I
P (ind-0, NS
notiake=0+
INT-MIN
take=
sodlength=ind+1 [ind] + kind.
N-sodlength) than 2m)
take-
iPsodlength N) nottake
==
peice
exponential (greates
To
max/take,
seturn
S27 O Hargelf
I
Memorization
-

ind, N

dp/N] [N+
TCe O(NXN
0 (NxN) 0 Hasgelf+

SC-
ASS

-Tabulation
write base case

② Changing passes
③ recussner
dp [N] [N+i] NxPrice So]
d4[0][w]
=

40s (N = 0 G0w)
Pos(ind=> 1 t0 N-)
Ros (N 0 to N
=

sacusrene
socussion memorization
12
12

olmization
space
Tabulation
12 12

optimized
i
12
longest common subsequences) DP on strings

S1= 'adebo
32 = "doadb"

comparison
strings Ireplaces/edit
*
Brute force exponential the
-
a compass
on way
secussion
subsequences
I generate all recursion
->

write
cules to
(indi, indef
index
and / ced ① express
in that
possibilities
*
on

all
② explose
9 index
them
de de ③ take bestamong

Ge 10....2) I
P12,7-> los of stil
Sts2 (0....2)
and ced st110...2
Steels....)
R2,5) e &

secssence
match on indexes

·+ I(indl-1, inde-o
② not match
Minds, inde-11
ofmax (Hinds-,inde), exponential
2", 2m
↑ (indi, inde TC
567
9 ipindo co indeco)
setueno;
iP (s[indi) 52
==
[inde])
seturn of Pinds-1, ind2-1)
indes, Minds, inde-1)
seturn ofmax (Rinds-1,
3
112,4
Iced 2

and 1+1
=
=>

It So,
0

agenpeo
2
acc 4+ 1

gla
de
↓ 410, -140

ke
·pos R10,0
Bale
Memorization
- &st2 [0...... I
R(i,i) - has of stilo.....1]

dp[N][m]
=
-

1 TCe
88-
OCNYas OLNs
+
Recession
memoization
tion;
3

bottom ups
dp [N][m7
0
&
=

are wettenbe negative


① declare up assay
② the
Copy
base case
for changing
②basecases
⑧ nested looks index
parameters
Copy the
④ securence
iftingof the
q
dp[N+i)[m+1 A
0
=


&10) ALU) &(4, MS
Pos (i 0tON) dp/i]/0] 0
=

sightby s
=

it to
Pos (9 050m) dp[0][5] 0 =

shifting
the base
=

case
so
- P
return
Rob (i=1J0N) 94 (ico "5 <0)
Ros1 1toMS
=

will
--
become
119 =0)
setum P
iP (i
=

!
=
=

secussion
3
ulation optimization
3 3

⑭27 printlongest common subsequence


len: dp(n][m],
index:
bent
/i=0toben-1)
is
8=
' for

I M
i a;
=

&do
·tile (iso
⑧ S2[5-D)
Mox 3 iP(Sti- ==

⑧ O
Max 3
Sindex)
index--
=$1[i-i;

i --;j-;

[7>dp (i3[5-1)
be iP (dp(i-1
si/i-1
#
=
S2[5-
=

9i =
i-1;

dpG][] dp [i-1] [j-B


(:-3[s],dp()(.) elee-j-1;
= 1+

e
dpi)]=max/dp 3
I
Do I let i 0;ic=4; itt) dp[i)/0]
= 0
=

.
longest
moon substring (not subsequence)
si= abod
abzd
s2=
optimizatio
tablation space

loc2-longest palindromic subsequence


is it eads way forward I
palindsomer
same

backward
palincome
6 =
bbbab- ab I
bb -
lobb
⑱)
** * *
bab v
are
⑭- generate allsubsequences
I take the longest
⑫- 51- given input
si
S2-> severse

all ICs (81,54

⑳- es
Tabulation space
opti mi zed
4 4

- min insection to make


sting palindome
insect
you
can
any
has
anywhere
s = abs a a Max
Ien(s)
abadd operations =

leverse of p

S:abo ad
↓ insections
abobad
you approach?
do intact
the palindomic
longest postion
keep
-
ext abo ad ren75 codingninja
*

length) 3 legth? It 11-5 =6


calindrome palindome length,
west I min insection
[5-5: 2

a
bo acba codajniinjadoc
datinized
space
6

e min insections/deletions to convert


string
to
A
string
S1= "abod" convert 51 to 82

site operations
S2= "AUC"
⑭o delete everything from
fromseto-413
"

② insecteverything
total: operations
M
max operations:4 +

↑ insections
deletions
nC
abcd a


edeletions
invest subsequence
My- longest
common

les 2 2 +
3-2, M-1Sx2
=

ansz 4- H+
i
=
4 -
7
-
4
m
3
=
-3
tabulation

les
-
32
- shortest common super sequences
Si= "brute" s2: "Soot"
"Autegroot" length: 10

length 8 shortest
"bgeuoote"Y
-
=

S1:bleed 82:blue

ans-bleved
t
beute 9500
***** *****

bgzuooteip chas matches


taverse both
sing, both
take it once, else take

=n+M-lenlles)
-string=?
I- S O O A 1cs([+][m+D]
g
it I 2 345

O O O ⑧ O 00

b 10 O 0000

3200 1 I 1 I

u 300 l I 1 I

+400 1 I 12

2500 L L I 2

I- alter
S O O A be
will
it q, 2 3 45 this
outside
white
while
another

-
000 case
O 0 ⑧
look ↳
in

-D B
O 000

ND48
-

32 O O I
-
u 3 O o D DB 1

85
+4 00 1 I
te

stovorby
Ggbsovote
len
ee
magonewd

bgeoote
3- distinct subsequences (ID assay optimisation technique.
concept- sting matching
try out
all possible ways
babgbag
Si=
52:
bag
Recession
babybag ⑳ --

(ii)
①express everything
in

thatindex
babybag ② explore all possibilities on

③ summation of all possibilities


babybag return
gar
babybag Y babgbag
babybag
yS2=bagp

start1, m-1)
M Mul

of
-> of distinct subsequences
number
32C0.....] in $10..... I
base case
↑(i,)[,4(;<0) return 1; -

bag
if (i <0) retano;

s2[5])
babybaya I
is (81)]
=

+ R(i-1,1) ob
return 1(i-1,5-1) j = -1

is matched
else ↳everything
setwen R(P-1, ) it all class of 2 matched, return o

3 not found
is io & iso-match
TO exponential o setwen

see
52-2m
S-0(N+M)
memorization
aging prasamse
ij
p [N] [m]

TeONYe) OSN e +

auxiliary space

menoization
Recussion 5

5
lationup dp/N][m]
① declare up assay
the index by
1 to sight
base cases
shifting
⑧ wsite ① dp[at] [m+i]
for changing params 1
⑧ write looks (i=0coaldp[i](0]
=

② tos 0
40 (8=0f0m) dplo][]
the secresence
④Copy
=

③ Posli=1 toul

④ rac-sciyyedpliiyis
dep (i][5]:dp[i-195]
up is initialized with
↳ because o
already

setunn dp [n][m]

Tabulation
5

optimized iD-optionized
space
5

5
-Distance IID
Assay optimised

① insest
② remove
replace intuition
③ ->

delete all from sen


insest all fromse to st- m
total operations (uton)
~Mis
find operations
Ha-1, MY
I
min
to
to convest silo.... it
32/0....] insection so inserts
at
->
sOS
hosses
a
i d
inaction; matches with
after
-
replace 1 Plis
+
the inserted was,
I9 1
= -
so

same
horse
10S semove/delete
& I stayed

--
I j
hosse SOS
etos
doesn't match, update ↑ I
;
i i-1
doesn't match, delete,
=

j j -1
=

1:If

1 -
P(i-1,5) i fli-less
+
jI
=
matches.
- (ii)
&+P(i-1,
it iPlico) return it;
return it1;
iP(jc0) Ri-1,5-1)
cases exhausted return of
iP (s)i]==S275)
exhausted return Math.Mix (1+R(is-1)
PLP-Is),
↓+

we
need to insectsemaining it 4(i-1,j-1))
chass from S

exhausted TC - exponential
it
*
match
means already SC- 0 (N+M/
found S2:" Memorization
"Lor"
81= -
samsi j
to
convert
min
setoperations
3
changing f N M

required dp [N][M]
TE O(NXM
x 0(NxM)
+OM

Recession
2

menization

2
Tabulation shifting index sightby
to

E -
I j

·
nt1

ot
U M
r
·

Tabulate
--

spacetimized
2
↳5, wildcard matching ? -matches
with single character

Si= "?ay" Are


*
- matches with sequence of length 0
S2:
"say" or pose

infot
saDODe
-
Bug S1- lowercase. 3. A

S2- lowescase
51 xxabod questions check whether si matches with
Awe
=

52 or not
32:abod

ab?d
-

S1-
false exponential
52 ab
=

TCP

-
Recession SCONT
① express in (i,i)
② explore all comparisons
it
⑧ outof all comparisons, ↳or * cabe

anyone can, retwen fee ↳b* abdef

↑(i, (inis)/Xst
5
PCOads?of esteem be
en
ablabdel ab*labde
14(i 2 0 =
&& j<0) de ........

Sii]:"?"
q
-
iP (S1) ==
52/i] /
abx/ab
seturn 4(i-1,i-1) ablabde, -I
a

abxlab↑
iP (S1(i) = *Y
ablabd *Y
=

return 4(1-1,5) or bli,j-i)


is 0 && ISO abxla
ablab,
=

setun false; "ab" a a

81:"***"
81:

" "
3 92= 52 =

Are falle
Memorization
-
i j
M-1
Or

dp[N][m]
TC-O (NxM
Sce0(Nx M) + 0 (N+ m)

memon
tiue

Reation
Be

Tabulation
-

X based
indexing

fie

Tabulation
tie
spaceptimized
Awe

best time to and sell stocks/DP stocks


6 buy -
-
on

n6
[7, 1,5,3,6,4]
=

ass(It

buy? I

sell - E

profit=>5
intuition
-
if you as selling on ith
day,
price from
~

the min
you buy on

Thail
*
st -> (i-1)
profit 0
=

we min=alo),
1; i <u; i++)
Posli =

I cost a [i]-min; 5

(profit, costs;
=

profit-max
min-min/min, a (is)
return ofit;
& sell stock
⑬Buy
u6
[7, 1,5,3,6,4]
=

als[It
want
buyd sell as many
times as
you

outall ways.
my if
Recussion
①-
a
flag to see we

a
buy current
can

of Lind, buy
everything in terms stock not
excess
a
1.

2. explore possibilities on
thatday
made
So take the all
max profits

Base outof found
buyings-piace-I
case
his
toke
0

41i,i
2
5-7 =)
-

+flice->
+

iP(ind n)
==
selling
->

returno;

Plind+1,I)
iP(buy)
profit: Max ((]+Kind+1,0S, lot
ne
not take
take

ebes +Plindta4);10+Pindfl,a)
sofit-Max ((pices(ind]
I
return profit;
TC 2"
SC-0INS

emoizatnbry
dP [N][2] Recursion
-
6 ~

TC 0(Nx.2
SCR0(Nx2) +OlN

mization
6

Tabulation
-fN+s(2)
-
basecase

da
not too
0 to 101700
buye
rabulation
6

~spacetimization
space optimization

less - buy a sell stocks II

i
pees [5,35,0,05,
=

5
->

ex-2
-- -536
profit 6.
may
==

initial call
tansactions x
-X 2
10,1,2 boy:1s we can
buy a stock
today
&[ind,buy, cap ioe
boy, we willbeinvestmoney
return reduced
3 iPlind= 11 cap:=of
o will
money
80
0
=

from profit
ifwe
letiofit=
buying today,
0; are not
I

if(b.1: (-pice(ind]+4lind-1,0,cald boy: boy


we can tomorrow.

mobit remain same

Max the
0- we can sell
todaystock
0 +

Hind+1, 1, cabl meviously bought


else it increase
it all
sell, of
pofit=Max(Ricefind]+Rindt, I, capy, & we can
buy tomossow
Flind +1, 0,capl)
of if notsell, profit remain same

& not boy tommossow


profit;
we can
return
if we sell, itsansaction will complete
3 & now cap-cap-1
TCs exponential
SO
memorization
-

ind cap
Ofont buy, ollk
N2 3

4p(N][2] [3]

TCe 0(Nx2x5
SC O(Nx2x5) +
ORS Recession
6

6
Memoration
Tabulation
-

dp(n][e][3]

0
:

not necessary is
since alloy
->
8
with
Base
-
cases
initialized
it's always
⑩pindd bry can be
anything -atcap:o, from
start
I
ton-1) so
Dis (ind 0
= -

0 tol)
Pos(buy =

dPind] [buy]/0T 0 =

②is cap a can be anything


Pos/buy 0 to
=

1) Tabutation
Pos /cap=0 t02]
<plu)(boy].[cap] 0 =
6
starptimized
6

asactions
sell are allowed
k
psices:(3,2,6,5,0,3]
= 2

g
O sell stocks with cooldown
buyd
buy sightafter
cooldowncan't sell
->

unlimited transactions

memorization

Tabulato
Il
⑭I tansaction
a sell stocks with fee
buy
unlimited transaction will be taken
bansaction a fee
butfor every
Lee 2
prices:(1,3,2,8, 4,9]
=

-W
5
from let
I -
2 .
Dee
-
2

5 3
+
8
=

↳fee
⑭42- longest increasing subsequence
(Is pattern)
ass [7=[10,9,2,5,3, 7, 101, 18]
18 ben4
2, 5, 7, -

2, 3, 7, 101 -> lan 4


subsequences
various subsequences - print all

Butee
T2
U ①powerseenin
Recession
-
term of (ind)
1 express everything in

2.explore all possibilities


or take not take
take the be take a nottake
So max
length
index of peer dementwhich was picked
Alind, peer) from oth index, whose
RO,stast- lengthindex of Lis starting
per
is -1 -exponentieach
cal item
24 L Dor
Alind, per
return o;
TJ we are
Tare)
doing to
9 islind==al SC-0IN)
it (dplind] [pert]!=
"I) refunds.-- to h

let 0+ R(ind+1, peers


not takelen: memorization"
--
tont

-111 assfind]>
as [per]] perind
iP(peor
[NT [W+]
==

lettakelen: 1+
4(ind+1,ind) dp
index
coordinate change(shifting
the
setwen max(notTakelen,
takelen);
↓ -o sight by IS
3 defind] [pert=
TC30(NXN
S-0(NXN)+O(N)
XC0,-1) 10,9,18

my Is Inattake
& (0,0) R10,-1

d mit

Rasion memorization
-
3
3

3 -
point longest increasing subsequence
question
Tabulation
-

0dp(u)(n+] 0
=

initialized
② since up already
is
need to write
don't
with o, we
base case direction
③ clanging params,
opposite in

ind=4-100 -
ind- to
per=
follow cordinate ship
④Copy the secessence,
tabulator spacoptimization
3 3

-> T6 eOINY
=6 - 0(N

fake
5004 to 2
3
orespondant
- it's
same whetherdat 16

"
-

is
Or index of 515,11I
of index

2 -
of
index of
5 15,6)
11 (1, 16)
ingate i
max
s
value s
hash-
n
not ee
value

vale
16
in

->

- 11-5
3
dpe indexI
val(2] ->val(o]
OCNY +OINS 185
ofor
=

TC 2

Six O(N
TCT
40
5, 11,16 # -> use

to
binary search

search) optimize
leck4t LIS (binary notpaint
-> we can Lis
by binary
saasch

not
Notes in interview its
referable to rewrite
an

create new insted


away, a

1, 7, 8, 4, 5, 6, -1,9
·1,4,54,6,9
T6-
0(N*l o gn)
S
O(N
I
subset
⑭- largesible

size
51,16,8,43
-

answer -

orders
pointthe answer in
any
ed 1, 4, 7, 8, 16

ex- 1,4,8

if 4 is divisible by
..4
08..
..

then 8 will be divisible by


-
ans [1,4,8,187

0(NY +O(N)
ice
SeO(N
16,8,4, 1
longest
string chain
words):I ', b, be, boa, bda, bdca]
-
quence -
-

notsubsequence

for (i=1 to as
9 Ro (1= 0;j2;; it

indlass(i],
as[i?) Id

dp [i]+1> dp(i))
dp [i] dp/3]
=
+1;

S
max:
max/max, dp[i]
3
return max;

e(aus),ass(i)) an(s):boa
as[i]=bdca &
AA A
*** *

pointes
is both the exhaust together
it's a match
in it
i can have one skip
TCS O(2xlength of string) to
(logiosting
So - 0(N)

3
Leckiebitonic
subsequence
12 1
2
bitonics increase thedecease 1

or, decease
then increase 12233
22'
3 lette
os, justincreasing 3

os, justdecreasing
*
1,3, 7, 12,9,4,2
10
9,6, 2, 1, 4, 7,
5, 2,17

j
10, 4/
as II: [1, 1, 2,
&4s from left
2 1
2 3 34
dpICT:12 1 -> 45 from sight
332
1524
dp2[7: 6, 3, 1
3, 6, 5,
1,6,
bitonic islength: was added twice
3 7 6
= =
(bcor, 10
4+

-
equal
to consides
value
in
I
e
Lis

Olm
O(2++0(NY.
TC -0(N
↳8- number of longest increasing subsequences

4 T
5LS
I 35
#E3 *2
423
dpl] +2+ ans
-i
+
it
countC] "-H 1, 7
1, 4

1,3
G,3,5 1,3,4
1, 3, 7
1,3,5 it
1, 3, 4, 7
4
it
1 2H= 3
2

2
-Maxix chain multiplication (MCM/ Pastition P

ABC A 10x30
:

B 30X5=

C 5468=

① (ABI - 104 30x5

I
-74500 Mix up - 4500
·

six8 10X5460 &

(ABC
Y

30x5460
② A( ->
I
27,000
=>

[10x30] (30x50) 10x30x60

n an]e[18,20,50, 50,0]
N5
=

A - 10x20 1st - ACO] A[1]


*

BT 20x
30 2nd - ACI ACE=

C- 30x40 31d -> A[2] *ACE]


DB 40X 50 ith- A[i-1 * A [i]

/ABC
,(()B543 ft
Pastition DP Rules.

I startwith
entire block/asay P(is)
2. ty all pastitions all partitions
-> Run a loop to
by
3. Return the bestpossible
2
partitions

<10 20,38,40,50]
A B C B

i j
A ↓

&11.4) ->
I
return the
in multiplications tomultiply
matix 4
matix to
↓ based
start
&(0, n-1) where does; I
out
noter we have toReguse
on the question

Kit
iP (i ==I cturno;
min=INT_MIN;

&02/K i t0j-1) P(K+)


-ass(i]) +R(i,k)
=

+
[i-D* als[]
'Stos=(an
min:min/min, steps
3 memorization
return min; -j IDEO(NY)
->

Syse exponential Up (3 [w] 0xwixo OCN


ice
87
sc-0(NXN) +O (N)
Recession
8000

memorization
-continue for lecture

Tabulation
d<[NYN]
PoS (i 1; =
ICN;it

dii]/i] 0
=

I
I Url to
=

to Url
j it=

tabulation
8000
lecst-min costto cutthe stick

re
cutsisas feeangle ene

sosttheassaub'trobes independently

insest 4:7
index of 2 3 454

insets o 134 57
I
i,j
i

initial all TC
exponential
& (1,4)
-

S-0(N)
Flipeiss min:INT_MAY
atumi
& (ind= i to]] +A(i,ind-l+ind+,I)
[cost=cuts (i+1-cuts[i-
costs
min:min (min, 4,3,4, 5
3
retaste min;

itste/51
77 3 4+ 3:17
+

,
·!!!" 4
-I

M!!"t
·, ,
-
ind++
-
ind+t

Recession

10 memorization
Memorization
--
I I

Hocuts to cuts

1]
dp [+] [c+
cesize of alts
look
O(xc
-Ol
is

ice
0(
se0(x) +

Tabulation
-

10
iabulation
lects burst balloons (pastitionDP coins?
a
3X/X5:15
[3,x,5,8]

I
[x 1,5,8] /x3x1 3
=

3)5x8=/28
(*,5,8] (X/X5 5
=

[3,4,8]
1x3x8 24
=

↑x548 48 [5,8]
$5,8]
=

148 x 1 8
=

1x8X 1 8 [*]
[*]
=
-

-
56

total coins =

->
go in reverse, start from last
P 3 15 8 I element
-
-
-

gr -> 1X8X1: 8

3 -> (x3x8= 24

->
5 3x5x8:120

↑ -> 3x1X5=15

(b) be 8 b4b5b6]
I
ind

↑(i,ind-) +Plindt,I)
I

a [i- xafind) xa/5+1] +


↑(i,) TCS exponential
3 iP(is]) retuno; max:Iot min SC-0(N)
->
islook
for (ind= i toj), -
memorization ↑Ce 0(NxNXN)
= O(NS)
x afind] x a [5+ j
cost:a [i-1 SCP/NXN +O(N)
ICON
Pli,ind-1) -Rind+1, i)
HON
- A86

(max, costs
4p[N+i [N+]
max:Max

I
return max:

Reclusion
120 120
memorization
Tabulation
-

dp[n+i[n+1]
have case
-
Por(i A ton)
=

Ros (j 0
=
tons
iP (ixi) dp
(i] (j] 0
=

(write
in opposite)
dangaiable
1
4 to
9

to n
j51
securence
coly
Tabulation
-

120
10253
-
evaluate boolean expression to tur

Or I
expression: 'TITIF"
->

& and
XOR- d

evaluate the
Find number of ways we can

to true?
expression
intuition
can do pastition
-feresy apesand
a
we

independentsub-problems
I

I break it into
->
opeland are atdifference of 2

Ten
T

I ↑ I
TAF F
justoperand
=

it
FRF F
operand
=

ps
TaF
& (indt is
ind T
=

indus FRT T
Ali,
=

sight
left light
a left a

↓ ↓
Ta =
TU2
=

total
ways: axy F U4=

F R3
=

where x-fue
denum of ways UIXR4
where the
↳- num of ways y: &3 XR3
when it will be true
left I

sight
TC2 = CIXR2
Td
=

dIXG3
=>

F=R4
F U3
=

E U2xC4
total
ways:
↑10.4-1, rum of ways to make the

& (ie, is true) E


iP(i<;) setwen 0;

iP(1 I) =
=

9 iplistine == 1) return ai]=='T';


else return a lil==F';
ways=0 ind:ind+2)
ind I-1;
Roz/ind: it;

SLT P1i,ind-1,1)
=

LF P1 i, ind-1,0)
=

RT P(ind+1, 5, 1)
=

RF Plind+1, i, 0)
=

iP (a [ind] = '&1
=

it listine ways += LT *RT;


IRFxTE)
(LTXRF) +(LFxRT)
+

the
ways:

else iP (afind] ==
"i)
ways
else

return ways
3
TCS exponential
3- O(N)
memorization
Ti yo
dp (n) [N] [2]
TDe
(NYNY2S NTRe
Sy
Recursion 2
memorization
2

4Palindome partitioning-1(Front pastition

single has is a
palindome
every cuts (n-ll
itself
->
in
de
string- bablabobald/de
ans= 4 4 patterns

i, loop -> palindomecheck


K(il
O(x N) +0(N) exponential
Sip (i = = 4) returno; TO

temp:"";
SCHO(N) state look
min INT-MAX:
= memorization
- -0(NXNI
1031;=1;34; ++) I
To

temp +=s[I] Ito


N
S-OINT +O(N)
iPlisPalindrome (temp)) dp[N]
cost 419+1);
1t
=

min: min(min, cost


etwrenmin;
this
albltemove
e
Recursion memorization
↑ ↑

call stack
exceeding
both are max

Tabulation
--

&dp(n]
dp[9T 0
=

care
② bare
i url too

=

securence

Copy

tabulw

I
55 Pastition assay for max sum
Ipsont pastition
-
Max 3
elements
in a
pastition

&
(id)id(ind
MaxAn8:
n) returno;
==

INTMIN;
INTMIN;

fres
MAX=
low 8;
very the
action for from
=

+)s
Posis-ind; in mink, indic);
len+t;
max:max/max,
assi
thatindex benx maxt P(T+)
the bestpastition
sum:
③ take maxAns:Max Isum, maxAns
3

(1925 107
3
return maxAns;

exponential
*

i 1 k
TC-
lenz lons
law: Se

-
Memorization
o tout

dp [n]
TC- 0(N/ x 0114
Sc-0(N) +O(n)
Ass

-
Tabulation
-
0
base case dp[n]=
ind=n-1 to 0

securence
copy
Recursion memorization
120 120

tabulation
120
↳6- max
rectangle area with all I's IDP on
rectangles.
used
may of

I Nanalieas
&84-
histogsaminte
man

⑱6
I

TC - 0 (N *(M+N))
S-0(N)
locst - count square submatives with
all ones IDP
-
on
rectangles.

O I 2

I O 10 P
↑ ↑

1 2 2
↑ O ↑ P

↑ 2 02 3
↑ I

at
sight bottom is
&p (i) [si]
↓ end at Liss]
zisi how
many squares
three
minimal of all
A ↑ + himself

-> I + 1 2 =

dp[i][Y]=min(dp/i-1][17,
(j-1a dp [i-D
dp[i](3-1) +1
TSe
0(Nxm)
88
O(N+m)

You might also like