Skip to content

Commit f29592e

Browse files
author
LuoHong
committed
first commim
1 parent 15ae6e1 commit f29592e

File tree

11 files changed

+325
-2
lines changed

11 files changed

+325
-2
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Compiled class file
22
*.class
3+
*.DS_Store
4+
*/.DS_Store
35

46
# Log file
57
*.log

Code/Java/1.两数之和/TwoSum.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
5+
public class TwoSum {
6+
7+
public static void main(String[] args) {
8+
// System.out.println("Hello World\n");
9+
10+
TwoSum ts = new TwoSum();
11+
int[] nums = {2, 7, 11, 15};
12+
int[] result = ts.twoSum(nums, 9);
13+
14+
for (int n: result) {
15+
System.out.println(n);
16+
}
17+
18+
}
19+
20+
public int[] twoSum(int[] nums, int target) {
21+
Map<Integer, Integer> map = new HashMap<>();
22+
for (int i = 0; i < nums.length; i++) {
23+
24+
int temp = target - nums[i];
25+
if (map.containsKey(temp)) {
26+
return new int[] {map.get(temp), i};
27+
}
28+
map.put(nums[i], i);
29+
}
30+
return new int[0];
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import java.util.HashMap;
2+
// import java.util.String;
3+
4+
class RomanToInteger {
5+
6+
public static void main(String[] args) {
7+
// System.out.println("Hello World\n");
8+
9+
System.out.println(romanToInt("IV"));
10+
}
11+
12+
public static int romanToInt(String s) {
13+
14+
int sum = 0;
15+
if (s.indexOf("IV") != -1 || s.indexOf("IX") != -1) {
16+
sum -= 2;
17+
}
18+
if (s.indexOf("XL") != -1 || s.indexOf("XC") != -1) {
19+
sum -= 20;
20+
}
21+
if (s.indexOf("CD") != -1 || s.indexOf("CM") != -1) {
22+
sum -= 200;
23+
}
24+
25+
for (int i = 0; i < s.length(); i++) {
26+
Character c = s.charAt(i);
27+
if (c == 'I') {
28+
sum += 1;
29+
} else if (c == 'V') {
30+
sum += 5;
31+
} else if (c == 'X') {
32+
sum += 10;
33+
} else if (c == 'L') {
34+
sum += 50;
35+
} else if (c == 'C') {
36+
sum += 100;
37+
} else if (c == 'D') {
38+
sum += 500;
39+
} else if (c == 'M') {
40+
sum += 1000;
41+
}
42+
}
43+
return sum;
44+
45+
}
46+
47+
/*
48+
字符 数值
49+
I 1 73
50+
V 5 86
51+
X 10 88
52+
L 50 76
53+
C 100 67
54+
D 500 68
55+
M 1000 77
56+
*/
57+
public static int romanToInt2(String s) {
58+
59+
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
60+
map.put('I', 1);
61+
map.put('V', 5);
62+
map.put('X', 10);
63+
map.put('L', 50);
64+
map.put('C', 100);
65+
map.put('D', 500);
66+
map.put('M', 1000);
67+
68+
int sum = 0;
69+
int last = -1;
70+
for (int i = 0; i < s.length(); i++) {
71+
int num = map.get(s.charAt(s.length() - 1 - i));
72+
if (num < last) {
73+
System.out.println(num);
74+
sum -= num;
75+
} else {
76+
System.out.println(num);
77+
sum += num;
78+
}
79+
last = num;
80+
}
81+
return sum;
82+
}
83+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
public class RemoveElement {
2+
3+
public static void main(String[] args) {
4+
int[] nums = {3,2,2,3};
5+
int val = 3;
6+
System.out.println(removeElement(nums, val));
7+
}
8+
9+
public static int removeElement(int[] nums, int val) {
10+
11+
int newLength = 0;
12+
for (int i = 0; i < nums.length; i ++) {
13+
14+
if (nums[i] != val) {
15+
nums[newLength] = nums[i];
16+
newLength ++;
17+
}
18+
}
19+
return newLength;
20+
}
21+
22+
}
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
public class MoveZeroes {
2+
3+
public static void main(String[] args) {
4+
5+
int[] nums = {0,1,0,3,12};
6+
moveZeroes(nums);
7+
8+
9+
}
10+
11+
public static void moveZeroes(int[] nums) {
12+
13+
int length = nums.length;
14+
int fast = 0;
15+
int slow = 0;
16+
while (slow < length) {
17+
18+
if (fast < length && nums[fast] != 0) {
19+
nums[slow] = nums[fast];
20+
slow++;
21+
}
22+
if (fast >= length) {
23+
nums[slow] = 0;
24+
slow++;
25+
}
26+
fast++;
27+
}
28+
29+
for (int n : nums) {
30+
System.out.println(n);
31+
}
32+
33+
}
34+
35+
}

Code/Java/66.加一/PlusOne.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
public class PlusOne {
2+
3+
public static void main(String[] args) {
4+
5+
int[] nums = {9};
6+
int[] digits = plusOne(nums);
7+
for (int n : digits) {
8+
System.out.println(n);
9+
}
10+
11+
}
12+
13+
public static int[] plusOne(int[] digits) {
14+
15+
int idx = digits.length - 1;
16+
while (idx >= 0) {
17+
18+
if (digits[idx] == 9) {
19+
digits[idx] = 0;
20+
} else {
21+
digits[idx] = digits[idx] + 1;
22+
break;
23+
}
24+
idx --;
25+
}
26+
if (digits[0] == 0) {
27+
digits = new int[digits.length + 1];
28+
digits[0] = 1;
29+
}
30+
return digits;
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
public class reverseinteger
2+
{
3+
public static void main(String[] args)
4+
{
5+
// System.out.println("Hello World\n");
6+
7+
System.out.println(reverse(214783647));
8+
System.out.println(Integer.MAX_VALUE);
9+
System.out.println(Integer.MIN_VALUE);
10+
}
11+
12+
public static int reverse(int x) {
13+
14+
int reverse = 0;
15+
while(x != 0) {
16+
int pop = x % 10;
17+
x /= 10;
18+
if (reverse > Integer.MAX_VALUE / 10 || (reverse == Integer.MAX_VALUE / 10 && pop > Integer.MAX_VALUE % 10)) {
19+
return 0;
20+
}
21+
if (reverse < Integer.MIN_VALUE / 10 || (reverse == Integer.MIN_VALUE / 10 && pop < Integer.MIN_VALUE % 10)) {
22+
return 0;
23+
}
24+
reverse = reverse * 10 + pop;
25+
}
26+
return reverse;
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
public class MergeSortedArray {
2+
3+
public static void main(String[] args) {
4+
int[] nums1 = new int[6];
5+
nums1[0] = 1;
6+
nums1[1] = 2;
7+
nums1[2] = 3;
8+
int[] nums2 = {1,2,3};
9+
10+
merge(nums1, 3, nums2, 3);
11+
}
12+
13+
public static void merge(int[] nums1, int m, int[] nums2, int n) {
14+
15+
int j = m - 1;
16+
int k = n - 1;
17+
18+
19+
for (int i = nums1.length - 1; i >= 0; i --) {
20+
if (k >= 0 && j >= 0 && nums2[k] > nums1[j] ) {
21+
nums1[i] = nums2[k];
22+
k --;
23+
} else if (j >= 0) {
24+
nums1[i] = nums1[j];
25+
j --;
26+
} else if (k >= 0) {
27+
nums1[i] = nums2[k];
28+
k --;
29+
}
30+
}
31+
for (int n1 : nums1) {
32+
System.out.println(n1);
33+
}
34+
35+
}
36+
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
public class palindromenumber {
2+
public static void main(String[] args)
3+
{
4+
// System.out.println("Hello World\n");
5+
6+
System.out.println(isPalindrome(122221));
7+
}
8+
public static boolean isPalindrome(int x) {
9+
10+
// 题干得 负数回文后 负号在后面,不成立
11+
// 如果最后一位0,第一位也应该为0. 所以排除,但是 如果 x = 0,例外。
12+
if (x < 0 || (x % 10 == 0 && x != 0)) {
13+
return false;
14+
}
15+
16+
int revertedNumber = 0;
17+
while (x > revertedNumber) {
18+
revertedNumber = revertedNumber * 10 + x % 10;
19+
x /= 10;
20+
}
21+
22+
23+
// 如果 x 位数为奇数时,中间数反转后是不变的。所以可以直接忽略 x = revertedNumber / 10
24+
// 如果 x 位数为偶数时,revertedNumber = x 跳出循环。
25+
26+
return x == revertedNumber || x == revertedNumber / 10;
27+
28+
}
29+
}

README.md

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,12 @@
1-
# Leetcode_Answer
2-
Leetcode 题解
1+
# Leetcode_Solution
2+
3+
This is my Leetcode Solution note
4+
----------------
5+
6+
[中文版](./README_ZH.md)
7+
8+
| Title | Solution | Topic | Note | Difficulty |
9+
| ----- | -------- | ----- | ---- | ---------- |
10+
|[1.Two Sum](https://leetcode.com/problems/reverse-integer/) |[Java](./Code/Java/7.整数反转/reverseinteger.java)|`Array` `HashTable` `Math` | |Easy|
11+
|[7. Reverse Integer](https://leetcode.com/problems/reverse-integer/) |[Java](./Code/Java/7.整数反转/reverseinteger.java)|`Math` | |Easy|
12+
|[1.Two Sum](https://leetcode.com/problems/two-sum/) |[Java](./Code/Java/1.两数之和/TwoSum.java)|`Array` `HashTable` | |Easy|

README_ZH.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# 力扣解答
2+
3+
这是我的力扣解答笔记
4+
----------------
5+
[英文版](./README.md)
6+
7+
| 题目 | 解答 | 话题 | 笔记 | 难度 |
8+
| ----- | -------- | ----- | ---- | ---------- |
9+
|[](https://leetcode-cn.com/problems/two-sum/) | [Java](./Code/Java/)|`数组` `哈希表` `双指针` `字符串` `数学` | |Easy|
10+
|[7.整数反转](https://leetcode-cn.com/problems/reverse-integer/) | [Java](./Code/Java/7.整数反转/reverseinteger.java)| `数学` | |Easy|
11+
|[1. 两数之和](https://leetcode-cn.com/problems/two-sum/) | [Java](./Code/Java/1.两数之和/TwoSum.java)|`数组` `哈希表` | |Easy|

0 commit comments

Comments
 (0)