Skip to content

Commit 770c17f

Browse files
author
YugenCoder
committed
refs #leetcode - some problems
0 parents  commit 770c17f

File tree

5 files changed

+212
-0
lines changed

5 files changed

+212
-0
lines changed

AddTwoNumbers.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package leetcode;
2+
3+
public class AddTwoNumbers {
4+
5+
public static void main(String[] args) {
6+
ListNode l1 = new ListNode(2);
7+
l1.next = new ListNode(4);
8+
l1.next.next = new ListNode(3);
9+
10+
ListNode l2 = new ListNode(5);
11+
l1.next = new ListNode(6);
12+
l1.next.next = new ListNode(4);
13+
AddTwoNumbers solution = new AddTwoNumbers();
14+
ListNode l3 = solution.addTwoNumbers(l1,l2);
15+
//[2,4,3]
16+
//[5,6,4]
17+
18+
}
19+
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
20+
21+
return makeList(l1,l2);
22+
23+
}
24+
25+
ListNode makeList(ListNode l1, ListNode l2){
26+
ListNode ln = new ListNode(0);
27+
ListNode ret = ln;
28+
int carry = 0,num1,num2,sum;
29+
while((l1!= null) || (l2!=null)){
30+
num1 = (l1!=null)?l1.val:0;
31+
num2 = (l2!=null)?l2.val:0;
32+
sum = num1 + num2 + carry;
33+
carry = (sum >= 10)?1:0;
34+
ln.next = new ListNode(sum%10);
35+
36+
if(l1 !=null ){
37+
l1 = l1.next;
38+
}
39+
if(l2 !=null ){
40+
l2 = l2.next;
41+
}
42+
ln = ln.next;
43+
}
44+
if(carry > 0){
45+
ln.next = new ListNode(carry);
46+
}
47+
return ret.next;
48+
}
49+
50+
51+
}

FindMedianSortedArrays.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package leetcode;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
public class FindMedianSortedArrays {
8+
public static void main(String[] args) {
9+
// TestCases
10+
FindMedianSortedArrays fmsa = new FindMedianSortedArrays();
11+
int[] result = new int[3];
12+
//List<String> testcases = new ArrayList();
13+
//testcases = Arrays.asList("abcabcbb", "bbbbb", "pwwkew","abba");
14+
int[][] testcases = {{50,60,55,67},{62,65,70,70}};
15+
System.out.println(fmsa.findMedianSortedArrays(testcases[0],testcases[1])+"\n");
16+
}
17+
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
18+
int len1 = nums1.length;
19+
int len2 = nums2.length;
20+
int res1 = 0,res2 = 0,mid1,mid2;
21+
//Odd Case
22+
23+
//Even Case
24+
25+
26+
return 0;
27+
28+
}
29+
30+
31+
}

LengthOfLongestSubstring.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package leetcode;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.HashMap;
6+
import java.util.List;
7+
import java.util.Map;
8+
9+
public class LengthOfLongestSubstring {
10+
public static void main(String[] args) {
11+
// TestCases
12+
LengthOfLongestSubstring lls = new LengthOfLongestSubstring();
13+
int[] result = new int[3];
14+
List<String> testcases = new ArrayList();
15+
testcases = Arrays.asList("abcabcbb", "bbbbb", "pwwkew","abba");
16+
17+
for(String testcase:testcases) {
18+
System.out.println(lls.lengthOfLongestSubstring(testcase)+"\n");
19+
}
20+
}
21+
22+
public int lengthOfLongestSubstring(String s) {
23+
int start = 0, end = 0;
24+
int result = 0;
25+
Map<Character,Integer> history = new HashMap<>();
26+
for (int i = 0; i < s.length(); i++) {
27+
if(history.containsKey(s.charAt(i))) {
28+
start = Math.max(history.get(s.charAt(i))+1,start);
29+
}
30+
result = (result < (end - start + 1))?(end - start + 1):result;
31+
history.put(s.charAt(i), i);
32+
end++;
33+
}
34+
return result;
35+
}
36+
}

LongestPalindrome.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package leetcode;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
public class LongestPalindrome {
8+
public static void main(String[] args) {
9+
// TestCases
10+
LongestPalindrome lls = new LongestPalindrome();
11+
int[] result = new int[3];
12+
List<String> testcases = new ArrayList();
13+
testcases = Arrays.asList("satas", "garbage", "somethingada","abba");
14+
15+
for(String testcase:testcases) {
16+
System.out.println(lls.longestPalindrome(testcase)+"\n");
17+
}
18+
}
19+
public String longestPalindrome(String s) {
20+
21+
//memory
22+
int [][]mem = new int[s.length()][s.length()];
23+
int maxLen = 1;
24+
int idx = 0;
25+
// initialize
26+
for (int i=0;i<s.length();i++) {
27+
mem[i][i] = 1;
28+
}
29+
for (int i=0;i<s.length()-1;i++) {
30+
if(s.charAt(i) == s.charAt(i+1)) {
31+
mem[i][i+1] = 1;
32+
33+
if(maxLen < 2) {
34+
idx = i;
35+
maxLen = 2;
36+
}
37+
}
38+
}
39+
for (int i1=2;i1<s.length();i1++) {
40+
for (int j = 0; j < s.length() - i1 ; j++) {
41+
if(s.charAt(j) == s.charAt(j+i1) && mem[j+1][j+i1-1] > 0) {
42+
mem[j][j+i1] = 1 + mem[j+1][j+i1-1];
43+
if(maxLen < i1+1) {
44+
maxLen = i1 + 1;
45+
idx = j;
46+
}
47+
}
48+
}
49+
}
50+
return s.substring(idx, idx+maxLen);
51+
52+
}
53+
}

ZigZagConversion.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package leetcode;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class ZigZagConversion {
7+
public static void main(String[] args) {
8+
// TestCases
9+
ZigZagConversion lls = new ZigZagConversion();
10+
int[] result = new int[3];
11+
String res = convert("PAYPALISHIRING",3);
12+
System.out.println(res);
13+
}
14+
public static String convert(String s, int numRows) {
15+
StringBuffer[] str = new StringBuffer[numRows];
16+
for (int i = 0; i < numRows; i++) {
17+
str[i] = new StringBuffer();
18+
}
19+
StringBuffer res = new StringBuffer();
20+
21+
//
22+
int idx = 0;
23+
24+
while(idx < s.length()) {
25+
//going down
26+
for (int i = 0; i < numRows && idx < s.length(); i++,idx++) {
27+
str[i].append(s.charAt(idx));
28+
}
29+
for (int i = numRows-2; i > 0 && idx < s.length(); i--,idx++) {
30+
str[i].append(s.charAt(idx));
31+
}
32+
}
33+
34+
//Join to get result
35+
for (int i = 0; i < numRows; i++) {
36+
res.append(str[i]);
37+
}
38+
return res.toString();
39+
40+
}
41+
}

0 commit comments

Comments
 (0)