Skip to content

Commit da6551a

Browse files
Create PizzaWith3NSlices.java
1 parent 53ed436 commit da6551a

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

PizzaWith3NSlices.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class Solution {
2+
// House Robber Variant ek baar last element exclude krke dekho kitna mila ek baar first element exclude krke pizza slices jitne number of slices /3 pick kr skte hai uske alava dono cases ke liye dp;s alag bnengei
3+
public int maxSizeSlices(int[] slices) {
4+
int n=slices.length;
5+
int[][] dp1=new int[n][n/3 +1];
6+
int[][] dp2=new int[n][n/3+1];
7+
for(int[] dp:dp1){
8+
Arrays.fill(dp,-1);
9+
}
10+
for(int[] dp:dp2){
11+
Arrays.fill(dp,-1);
12+
}
13+
return Math.max(func(slices,0,n-2,n/3,dp1),func(slices,1,n-1,n/3,dp2));
14+
}
15+
public static int func(int[] slices,int index,int endIndex,int slicesToPick,int[][] dp){
16+
if(slicesToPick==0){
17+
return 0;
18+
}
19+
if(index>endIndex){
20+
return 0;
21+
}
22+
if(dp[index][slicesToPick]!=-1){
23+
return dp[index][slicesToPick];
24+
}
25+
int iPick=slices[index]+func(slices,index+2,endIndex,slicesToPick-1,dp);
26+
int noPick=0+func(slices,index+1,endIndex,slicesToPick,dp);
27+
dp[index][slicesToPick]=Math.max(iPick,noPick);
28+
return dp[index][slicesToPick];
29+
}
30+
}

0 commit comments

Comments
 (0)