Skip to content

Commit 15b8f5e

Browse files
committed
2 parents 0667369 + 599b048 commit 15b8f5e

File tree

27 files changed

+285
-45
lines changed

27 files changed

+285
-45
lines changed

Diff for: src/main/java/s0001.two.sum/Solution.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public int[] twoSum(int[] nums, int target) {
2121
left++;
2222
}
2323
}
24-
24+
2525
for (int i = 0; i < nums.length; i++) {
2626
if (nums1[left] == nums[i]) {
2727
result[0] = i;
@@ -34,7 +34,7 @@ public int[] twoSum(int[] nums, int target) {
3434
break;
3535
}
3636
}
37-
37+
3838
int tmp = result[0];
3939
result[0] = Math.min(result[0], result[1]);
4040
result[1] = Math.max(tmp, result[1]);

Diff for: src/main/java/s0002.add.two.numbers/ListNode.java

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
public class ListNode {
44
int val;
55
ListNode next;
6+
67
ListNode(int x) {
78
val = x;
89
}

Diff for: src/main/java/s0002.add.two.numbers/Solution.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package s0002.add.two.numbers;
22

33
/**
4-
* Definition for singly-linked list.
5-
* public class ListNode {
6-
* int val;
7-
* ListNode next;
8-
* ListNode(int x) { val = x; }
9-
* }
4+
* Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int
5+
* x) { val = x; } }
106
*/
117
public class Solution {
128
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

Diff for: src/main/java/s0003.longest.substring.without.repeating.characters/Solution.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
public class Solution {
44
public int lengthOfLongestSubstring(String s) {
55
int lastIndices[] = new int[256];
6-
for (int i = 0; i<256; i++) {
6+
for (int i = 0; i < 256; i++) {
77
lastIndices[i] = -1;
88
}
9-
9+
1010
int maxLen = 0;
1111
int curLen = 0;
1212
int start = 0;
@@ -22,13 +22,13 @@ public int lengthOfLongestSubstring(String s) {
2222
curLen = i - start + 1;
2323
lastIndices[cur] = i;
2424
}
25-
25+
2626
if (curLen > maxLen) {
2727
maxLen = curLen;
2828
bestStart = start;
2929
}
3030
}
31-
31+
3232
return maxLen;
3333
}
3434
}

Diff for: src/main/java/s0004.median.of.two.sorted.arrays/Solution.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,14 @@
66

77
public class Solution {
88
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
9-
List<Integer> l=new ArrayList<Integer>();
9+
List<Integer> l = new ArrayList<Integer>();
1010
double f;
11-
for(int i=0;i<nums1.length;i++)
12-
l.add(nums1[i]);
13-
for(int j=0;j<nums2.length;j++)
14-
l.add(nums2[j]);
11+
for (int i = 0; i < nums1.length; i++) l.add(nums1[i]);
12+
for (int j = 0; j < nums2.length; j++) l.add(nums2[j]);
1513
Collections.sort(l);
16-
int k=l.size();
17-
if(k%2==0)
18-
f=(double)((l.get(k/2-1))+(l.get(k/2)))/2;
19-
else
20-
f = l.get(((k + 1) / 2)-1);
14+
int k = l.size();
15+
if (k % 2 == 0) f = (double) ((l.get(k / 2 - 1)) + (l.get(k / 2))) / 2;
16+
else f = l.get(((k + 1) / 2) - 1);
2117
return f;
2218
}
2319
}

Diff for: src/main/java/s0005.longest.palindromic.substring/Solution.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ public String longestPalindrome(String s) {
55
int start = 0, end = 0;
66
char[] cs = s.toCharArray();
77
for (int i = 0, max = 0, prev = 0; i < cs.length; ++i) {
8-
if (i - max - 1 >= 0 && cs[i - max - 1] == cs[i]
8+
if (i - max - 1 >= 0
9+
&& cs[i - max - 1] == cs[i]
910
&& (prev == i - 1 || isPalindrome(cs, i - max, i))) {
1011
start = i - max - 1;
1112
end = i + 1;

Diff for: src/main/java/s0006.zigzag.conversion/Solution.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
public class Solution {
44
public String convert(String s, int numRows) {
5-
if(s==null||s.length()<=numRows||numRows==1) return s;
5+
if (s == null || s.length() <= numRows || numRows == 1) return s;
66
char letters[] = new char[s.length()];
7-
for(int i=0,k=0;i<numRows;i++){
8-
if(i==0||i==numRows-1){
9-
for(int j=i;j<s.length();j+=2*numRows-2){
10-
letters[k++]=s.charAt(j);
7+
for (int i = 0, k = 0; i < numRows; i++) {
8+
if (i == 0 || i == numRows - 1) {
9+
for (int j = i; j < s.length(); j += 2 * numRows - 2) {
10+
letters[k++] = s.charAt(j);
1111
}
1212
continue;
1313
}
14-
letters[k++]=s.charAt(i);
15-
for(int j=2*numRows-2-i;j<s.length();j+=2*numRows-2){
16-
letters[k++]=s.charAt(j);
17-
if(j+2*i<s.length()) letters[k++]=s.charAt(j+2*i);
14+
letters[k++] = s.charAt(i);
15+
for (int j = 2 * numRows - 2 - i; j < s.length(); j += 2 * numRows - 2) {
16+
letters[k++] = s.charAt(j);
17+
if (j + 2 * i < s.length()) letters[k++] = s.charAt(j + 2 * i);
1818
}
1919
}
2020
return new String(letters);

Diff for: src/main/java/s0007.reverse.integer/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class Solution {
44
public int reverse(int x) {
5-
long rev = 0;
5+
long rev = 0;
66
while (x != 0) {
77
rev = (rev * 10) + (x % 10);
88
x /= 10;

Diff for: src/main/java/s0008.string.to.integer.atoi/Solution.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
public class Solution {
44
public int myAtoi(String str) {
5-
if (str == null || str.length() == 0)
6-
return 0;
5+
if (str == null || str.length() == 0) return 0;
76

87
int i = 0;
98
boolean negetiveSign = false;
109
char[] input = str.toCharArray();
1110

1211
while (i < input.length && input[i] == ' ') {
13-
i++;
12+
i++;
1413
}
1514

1615
if (i == input.length) {
@@ -24,7 +23,7 @@ public int myAtoi(String str) {
2423

2524
int num = 0;
2625
while (i < input.length && input[i] <= '9' && input[i] >= '0') {
27-
int tem = input[i] - '0'; //current char
26+
int tem = input[i] - '0'; // current char
2827
tem = negetiveSign ? -tem : tem;
2928

3029
if (num == 0 && tem == '0') { // avoid invalid number like 038

Diff for: src/main/java/s0009.palindrome.number/Solution.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ public boolean isPalindrome(int x) {
77
}
88
int rev = 0;
99
int localX = x;
10-
while (localX > 0)
11-
{
12-
rev *= 10;
13-
rev += localX % 10;
14-
localX /= 10;
10+
while (localX > 0) {
11+
rev *= 10;
12+
rev += localX % 10;
13+
localX /= 10;
1514
}
1615
return rev == x;
1716
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package s0010.regular.expression.matching;
2+
3+
public class Solution {
4+
public boolean isMatch(String s, String p) {
5+
Boolean dp[][] = new Boolean[s.length() + 1][p.length() + 1];
6+
return isMatch(s, p, 0, 0, dp);
7+
}
8+
9+
public boolean isMatch(String s, String p, int i, int j, Boolean dp[][]) {
10+
if (i == s.length() && j == p.length()) {
11+
return true;
12+
}
13+
if (j == p.length()) {
14+
return false;
15+
}
16+
if (dp[i][j] != null) {
17+
return dp[i][j];
18+
}
19+
boolean ans = i < s.length() && (s.charAt(i) == p.charAt(j) || p.charAt(j) == '.');
20+
if (j + 1 < p.length() && p.charAt(j + 1) == '*') {
21+
return dp[i][j] = isMatch(s, p, i, j + 2, dp) || (ans && isMatch(s, p, i + 1, j, dp));
22+
}
23+
return dp[i][j] = ans && isMatch(s, p, i + 1, j + 1, dp);
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package s0011.container.with.most.water;
2+
3+
public class Solution {
4+
public int maxArea(int[] height) {
5+
int max_area = -1;
6+
int left = 0;
7+
int right = height.length - 1;
8+
9+
while (left < right) {
10+
if (height[left] < height[right]) {
11+
max_area = Math.max(max_area, height[left] * (right - left));
12+
left++;
13+
} else {
14+
max_area = Math.max(max_area, height[right] * (right - left));
15+
right--;
16+
}
17+
}
18+
19+
return max_area;
20+
}
21+
}

Diff for: src/main/java/s0012.integer.to.roman/Solution.java

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package s0012.integer.to.roman;
2+
3+
public class Solution {
4+
public String intToRoman(int num) {
5+
6+
StringBuilder sb = new StringBuilder();
7+
int m = 1000;
8+
int d = 500;
9+
int c = 100;
10+
int l = 50;
11+
int x = 10;
12+
int v = 5;
13+
int i = 1;
14+
15+
num = numerals(sb, num, 0, 0, m, ' ', ' ', 'M');
16+
num = numerals(sb, num, m, d, c, 'M', 'D', 'C');
17+
num = numerals(sb, num, c, l, x, 'C', 'L', 'X');
18+
num = numerals(sb, num, x, v, i, 'X', 'V', 'I');
19+
20+
return sb.toString();
21+
}
22+
23+
public int numerals(
24+
StringBuilder sb,
25+
int num,
26+
int ten,
27+
int five,
28+
int one,
29+
char c_ten,
30+
char c_five,
31+
char c_one) {
32+
int div = num / one;
33+
switch (div) {
34+
case 9:
35+
{
36+
sb.append(c_one);
37+
sb.append(c_ten);
38+
break;
39+
}
40+
case 8:
41+
{
42+
sb.append(c_five);
43+
sb.append(c_one);
44+
sb.append(c_one);
45+
sb.append(c_one);
46+
break;
47+
}
48+
case 7:
49+
{
50+
sb.append(c_five);
51+
sb.append(c_one);
52+
sb.append(c_one);
53+
break;
54+
}
55+
case 6:
56+
{
57+
sb.append(c_five);
58+
sb.append(c_one);
59+
break;
60+
}
61+
case 5:
62+
{
63+
sb.append(c_five);
64+
break;
65+
}
66+
case 4:
67+
{
68+
sb.append(c_one);
69+
sb.append(c_five);
70+
break;
71+
}
72+
case 3:
73+
{
74+
sb.append(c_one);
75+
sb.append(c_one);
76+
sb.append(c_one);
77+
break;
78+
}
79+
case 2:
80+
{
81+
sb.append(c_one);
82+
sb.append(c_one);
83+
break;
84+
}
85+
case 1:
86+
{
87+
sb.append(c_one);
88+
break;
89+
}
90+
}
91+
return num - (div * one);
92+
}
93+
}
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package s0307.range.sum.query.mutable;
2+
3+
public class NumArray {
4+
private int[] nums;
5+
private int sum;
6+
7+
public NumArray(int[] nums) {
8+
this.nums = nums;
9+
sum = 0;
10+
for (int i = 0; i < nums.length; i++) {
11+
sum += nums[i];
12+
}
13+
}
14+
15+
public void update(int index, int val) {
16+
sum -= nums[index] - val;
17+
nums[index] = val;
18+
}
19+
20+
public int sumRange(int left, int right) {
21+
int sumRange = 0;
22+
if ((right - left) < nums.length / 2) {
23+
// Array to sum is less than half
24+
for (int i = left; i <= right; i++) {
25+
sumRange += nums[i];
26+
}
27+
} else {
28+
// Array to sum is more than half
29+
// Better to take total sum and substract the numbers not in range
30+
sumRange = sum;
31+
for (int i = 0; i < left; i++) {
32+
sumRange -= nums[i];
33+
}
34+
for (int i = right + 1; i < nums.length; i++) {
35+
sumRange -= nums[i];
36+
}
37+
}
38+
return sumRange;
39+
}
40+
}

Diff for: src/test/java/s0001.two.sum/SolutionTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import static org.hamcrest.CoreMatchers.equalTo;
44
import static org.hamcrest.MatcherAssert.assertThat;
5+
56
import org.junit.Test;
67

78
public class SolutionTest {
89
@Test
910
public void twoSum() {
10-
assertThat(java.util.Arrays.toString(new Solution().twoSum(new int[] {2, 7, 11, 15}, 9)), equalTo("[0, 1]"));
11+
assertThat(
12+
java.util.Arrays.toString(new Solution().twoSum(new int[] {2, 7, 11, 15}, 9)),
13+
equalTo("[0, 1]"));
1114
}
1215
}

0 commit comments

Comments
 (0)