Skip to content

Commit 1b13c00

Browse files
author
Goutham Pradhan
committed
Accepted
1 parent e19433f commit 1b13c00

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

problems/src/HouseRobber.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* Created by pradhang on 4/3/2017.
3+
* Accepted
4+
*/
5+
public class HouseRobber
6+
{
7+
private int[] max;
8+
/**
9+
* Main method
10+
* @param args
11+
* @throws Exception
12+
*/
13+
public static void main(String[] args) throws Exception
14+
{
15+
16+
}
17+
18+
public int rob(int[] nums)
19+
{
20+
if(nums.length == 0) return 0;
21+
max = new int[nums.length];
22+
if(nums.length == 1) return nums[0];
23+
max[nums.length - 1] = nums[nums.length - 1];
24+
max[nums.length - 2] = Math.max(nums[nums.length - 1], nums[nums.length - 2]);
25+
for(int i = nums.length - 3; i >= 0; i --)
26+
{
27+
max[i] = Math.max(max[i + 1], nums[i] + max[i + 2]);
28+
}
29+
return max[0];
30+
}
31+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import java.util.Arrays;
2+
3+
/**
4+
* Created by pradhang on 4/3/2017.
5+
* Accepted
6+
*/
7+
public class PalindromePartitioningII
8+
{
9+
private int A[];
10+
private boolean[][] paliandrome;
11+
/**
12+
* Main method
13+
* @param args
14+
*/
15+
public static void main(String[] args)
16+
{
17+
System.out.println(new PalindromePartitioningII().minCut("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
18+
}
19+
20+
public int minCut(String s)
21+
{
22+
if(s == null || s.isEmpty()) return 0;
23+
A = new int[s.length()];
24+
Arrays.fill(A, Integer.MAX_VALUE);
25+
char[] charArr = s.toCharArray();
26+
paliandrome = new boolean[charArr.length][charArr.length];
27+
return doNext(charArr, 0) - 1;
28+
}
29+
30+
private int doNext(char[] s, int p)
31+
{
32+
if(p >= s.length) return 0;
33+
if(A[p] < Integer.MAX_VALUE) return A[p];
34+
for(int i = p, l = s.length; i < l; i ++ )
35+
{
36+
if(p + 1 <= i - 1) {
37+
paliandrome[p][i] = paliandrome[p + 1][i - 1] && (s[p] == s[i]) || isPalindrome(s, p, i);
38+
}
39+
else
40+
{
41+
paliandrome[p][i] = isPalindrome(s, p, i);
42+
}
43+
if(paliandrome[p][i])
44+
{
45+
A[p] = Math.min(doNext(s, i + 1) + 1, A[p]);
46+
}
47+
}
48+
return A[p];
49+
}
50+
51+
private boolean isPalindrome(char[] sb, int s, int e)
52+
{
53+
while(s <= e)
54+
{
55+
if(sb[s] != sb[e])
56+
return false;
57+
s++; e--;
58+
}
59+
return true;
60+
}
61+
62+
}

0 commit comments

Comments
 (0)