Skip to content

Commit a1b5887

Browse files
committed
feature: new day
1 parent 8e612ce commit a1b5887

10 files changed

+171
-9
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- [1. 两数之和](/solution/leetcode/1.两数之和.md)
66
- [7. 反转整数](/solution/leetcode/7.反转整数.md)
77
- [9. 回文数](/solution/leetcode/9.回文数.md)
8+
- [13. 罗马数字转整数](/solution/leetcode/13.罗马数字转整数.md)
89
- [53. 最大子序和](/solution/leetcode/53.最大子序和.md)
910

1011

@@ -17,7 +18,7 @@
1718
- [8. 字符串转整数(atoi)](/solution/leetcode/8.字符串转整数(atoi).md)
1819
- [11. 盛最多水的容器](/solution/leetcode/11.盛最多水的容器.md)
1920
- [12. 整数转罗马数字](/solution/leetcode/12.整数转罗马数字.md)
20-
- [13. 罗马数字转整数](/solution/leetcode/13.罗马数字转整数.md)
21+
2122

2223

2324

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
public class LongestCommonPrefix {
2+
23
public String longestCommonPrefix(String[] strs) {
3-
return "";
4+
5+
if (strs.length == 0) {
6+
return "";
7+
}
8+
9+
String s0 = strs[0];
10+
11+
for (int i = 0; i < s0.length(); i++) {
12+
char c = s0.charAt(i);
13+
for (int j = 1; j < strs.length; j++) {
14+
if (i == strs[j].length() || strs[j].charAt(i) != c) {
15+
return s0.substring(0, i);
16+
}
17+
}
18+
}
19+
20+
return s0;
421
}
522
}

code/source/RomanToInteger.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
14
public class RomanToInteger {
5+
26
public int romanToInt(String s) {
37

4-
String res = "";
5-
char roman[] = {'M', 'D', 'C', 'L', 'X', 'V', 'I'};
6-
int value[] = {1000, 500, 100, 50, 10, 5, 1};
8+
Map<Character, Integer> map = new HashMap<>();
9+
map.put('I', 1);
10+
map.put('V', 5);
11+
map.put('X', 10);
12+
map.put('L', 50);
13+
map.put('C', 100);
14+
map.put('D', 500);
15+
map.put('M', 1000);
716

8-
for (int i = 0; i < 7; i = i + 2) {
9-
int x ;
17+
Integer result = 0;
18+
for (int i = 0; i < s.length(); i++) {
19+
Character c = s.charAt(i);
20+
if (i > 0 && map.get(c) > map.get(s.charAt(i - 1))) {
21+
result = result + map.get(c) - 2 * map.get(s.charAt(i - 1));
22+
} else {
23+
result = result + map.get(c);
24+
}
1025
}
1126

12-
return 0;
27+
return result;
1328
}
1429
}

code/source/isValid.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public class isValid {
2+
3+
public boolean isValid(String s) {
4+
return true;
5+
}
6+
}

code/source/mergeTwoLists.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import struct.ListNode;
2+
3+
public class mergeTwoLists {
4+
5+
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
6+
return new ListNode(4);
7+
}
8+
}

code/source/removeDuplicates.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
public class removeDuplicates {
2+
3+
public int removeDuplicates(int[] nums) {
4+
return 1;
5+
}
6+
7+
}

solution/leetcode/13.罗马数字转整数.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,34 @@ M 1000
5656

5757
## 想法
5858

59-
## My
59+
## My
60+
61+
```
62+
public class RomanToInteger {
63+
64+
public int romanToInt(String s) {
65+
66+
Map<Character, Integer> map = new HashMap<>();
67+
map.put('I', 1);
68+
map.put('V', 5);
69+
map.put('X', 10);
70+
map.put('L', 50);
71+
map.put('C', 100);
72+
map.put('D', 500);
73+
map.put('M', 1000);
74+
75+
Integer result = 0;
76+
for (int i = 0; i < s.length(); i++) {
77+
Character c = s.charAt(i);
78+
if (i > 0 && map.get(c) > map.get(s.charAt(i - 1))) {
79+
result = result + map.get(c) - 2 * map.get(s.charAt(i - 1));
80+
} else {
81+
result = result + map.get(c);
82+
}
83+
}
84+
85+
return result;
86+
}
87+
}
88+
89+
```
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 20. 有效的括号
2+
3+
## 题目描述
4+
5+
给定一个只包括 `'(',')','{','}','[',']'` 的字符串,判断字符串是否有效。
6+
7+
有效字符串需满足:
8+
9+
左括号必须用相同类型的右括号闭合。
10+
左括号必须以正确的顺序闭合。
11+
注意空字符串可被认为是有效字符串。
12+
13+
```
14+
示例 1:
15+
16+
输入: "()"
17+
输出: true
18+
示例 2:
19+
20+
输入: "()[]{}"
21+
输出: true
22+
示例 3:
23+
24+
输入: "(]"
25+
输出: false
26+
示例 4:
27+
28+
输入: "([)]"
29+
输出: false
30+
示例 5:
31+
32+
输入: "{[]}"
33+
输出: true
34+
```
35+
36+
37+
## 想法
38+
39+
## My
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# 21. 合并两个有序链表
2+
3+
## 题目描述
4+
5+
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
6+
7+
示例:
8+
9+
```
10+
输入:1->2->4, 1->3->4
11+
输出:1->1->2->3->4->4
12+
```
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# 26. 删除排序数组中的重复项
2+
3+
## 题目描述
4+
5+
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
6+
7+
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
8+
9+
示例:
10+
11+
```
12+
示例 1:
13+
14+
给定数组 nums = [1,1,2],
15+
16+
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
17+
18+
你不需要考虑数组中超出新长度后面的元素。
19+
20+
示例 2:
21+
22+
给定 nums = [0,0,1,1,1,2,2,3,3,4],
23+
24+
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
25+
26+
你不需要考虑数组中超出新长度后面的元素。
27+
```

0 commit comments

Comments
 (0)