AC第二天

一. 两数之和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.nianxi;

import org.junit.jupiter.api.Test;

import java.util.Arrays;

/**
* @author Jie.
* @description: TODO 两数之和
* @date 2025/4/8
* @version: 1.0
*/
public class LeetCode1Test {
@Test
public void test() {
int[] nums = {3,2,4};
int target = 6;
System.out.println(Arrays.toString(twoSum(nums, target)));
}

public int[] twoSum(int[] nums, int target) {
int length = nums.length;
for (int i = 0; i < length; i++) {
for (int j = i + 1; j < length; j++) {
if (i != j && (nums[i] + nums[j]) == target) {
return new int[]{i, j};
}
}
}
return null;
}
}

二. 整数反转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.nianxi;

import org.junit.jupiter.api.Test;

/**
* @author Jie.
* @description: TODO 整数反转
* @date 2025/4/8
* @version: 1.0
*/
public class LeetCode2Test {
@Test
public void test() {
int x = -123;
System.out.println(reverse(x));
}

public int reverse(int x) {
StringBuilder res = new StringBuilder();
String temp = x + res.toString();
//1.判断是否为负数
String fs = "";
if (temp.startsWith("-")) {
fs = "-";
temp = temp.substring(1);
}
//2.进行反转
for (int i = temp.length() - 1; i >= 0; i--) {
res.append(temp.charAt(i));
}
//3.返回结果
try {
return Integer.parseInt(fs + res);
} catch (Exception e) {
return 0;
}
}
}

三. 回文数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.nianxi;

import org.junit.jupiter.api.Test;

/**
* @author Jie.
* @description: TODO 回文数
* @date 2025/4/9
* @version: 1.0
*/
public class LeetCode3Test {
@Test
public void test() {
int x = 121;
System.out.println(isPalindrome(x));
}

public boolean isPalindrome(int x) {
//1.判断是否小于0
if(x < 0) {
return false;
}
//2.获取比较次数
String temp = x + "";
int i = temp.length() / 2;
for (int j = 0; j < i; j++) {
if(temp.charAt(j) != temp.charAt(temp.length() - 1 - j)){
return false;
}
}
return true;
}
}

四. 罗马数字转整数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.nianxi;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

/**
* @author Jie.
* @description: TODO 罗马数字转整数
* @date 2025/4/9
* @version: 1.0
*/
public class LeetCode4Test {
@Test
public void test() {
String s = "III";
System.out.println(romanToInt(s));
}

public int romanToInt(String s) {
Map<Character, Integer> symbolValues = new HashMap<Character, Integer>() {{
put('I', 1);
put('V', 5);
put('X', 10);
put('L', 50);
put('C', 100);
put('D', 500);
put('M', 1000);
}};
int ans = 0;
int n = s.length();
for (int i = 0; i < n; ++i) {
int value = symbolValues.get(s.charAt(i));
if (i < n - 1 && value < symbolValues.get(s.charAt(i + 1))) {
ans -= value;
} else {
ans += value;
}
}
return ans;
}
}

五. 两整数相加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.nianxi;

import org.junit.jupiter.api.Test;

/**
* @author Jie.
* @description: TODO 两整数相加
* @date 2025/4/9
* @version: 1.0
*/
public class LeetCode5Test {
@Test
public void test() {
int num1 = 10;
int num2 = 5;
System.out.println(sum(num1,num2));
}

public int sum(int num1, int num2) {
return num1 + num2;
}
}