Skip to content

Commit ab40fea

Browse files
链表和二叉树算法专题
1 parent 9d1bfa8 commit ab40fea

File tree

5 files changed

+7077
-0
lines changed

5 files changed

+7077
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package main.java;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
import java.util.Queue;
7+
8+
/**
9+
* //评测题目: 无
10+
*
11+
* <1> 数组排序
12+
* 输入 [1,3,5,2,6]
13+
* 输出 [1,2,3,5,6]
14+
*
15+
* <2> 输出杨辉三角
16+
* 在「杨辉三角」中,每个数是它左上方和右上方的数的和。
17+
* <p>
18+
* 1
19+
* 1 1
20+
* 1 2 1
21+
* 1 3 3 1
22+
* 1 4 6 4 1
23+
* 1 5 10 10 5 1
24+
* <p>
25+
* 样例
26+
* <p>
27+
* 输入: numRows = 5
28+
* 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
29+
*
30+
* <3> 简单计算器 加减乘除
31+
* 编写一段代码能够解析,四则运算的字符串,并且输出计算结果,运算符包括(“+”,“-”,“*”,“/”),不包括括号和空格,整数除法仅保留整数部分
32+
* <p>
33+
* 样例:
34+
* 输入 3+3*5 输出 18
35+
* 输入 3/2 输出 1
36+
* 输入 3+5/2 输出 5
37+
*/
38+
public class AliHankeOuter {
39+
public static void main(String[] args) {
40+
int[] arr = new int[]{1, 3, 5, 2, 6};
41+
System.out.println(Arrays.toString(solv1(arr)));
42+
System.out.println(solv2(5));
43+
System.out.println(solv3("3+5/2+0"));
44+
// System.out.println(3+5/2);
45+
// System.out.println(3+3*5);
46+
}
47+
48+
private static int solv3(String s) {
49+
//不考虑除0的情况
50+
char[] chars = s.toCharArray();
51+
List<Integer> list = new ArrayList<>();
52+
int res = 0;
53+
for (int i = 1; i < chars.length - 1; i++) {
54+
if (chars[i] != '*' && chars[i] != '/' || i == s.length() - 1) {
55+
if (res != 0) {
56+
list.add(res);
57+
res = 0;
58+
}
59+
}
60+
if (chars[i] == '+') {
61+
list.add(chars[i - 1] - 48);
62+
} else if (chars[i] == '-') {
63+
list.add(-chars[i - 1] - 48);
64+
} else if (chars[i] == '*') {
65+
res = (chars[i - 1] - 48) * (chars[i + 1] - 48);
66+
} else if (chars[i] == '/') {
67+
res = (chars[i - 1] - 48) / (chars[i + 1] - 48);
68+
}
69+
}
70+
int sum = 0;
71+
for (Integer integer : list) {
72+
sum += integer;
73+
}
74+
return sum;
75+
}
76+
77+
private static List<List<Integer>> solv2(int n) {
78+
List<List<Integer>> list = new ArrayList<>();
79+
for (int i = 0; i < n; i++) {
80+
List<Integer> row = new ArrayList<>();
81+
for (int j = 0; j <= i; j++) {
82+
boolean b = j == i || j == 0;
83+
row.add(b ? 1 : 0);
84+
}
85+
for (int j = 1; j < i; j++) {
86+
int res = list.get(i - 1).get(j - 1) + list.get(i - 1).get(j);
87+
row.set(j, res);
88+
}
89+
list.add(row);
90+
}
91+
return list;
92+
}
93+
94+
private static int[] solv1(int[] arr) {
95+
Arrays.sort(arr);
96+
return arr;
97+
}
98+
99+
100+
}

leetcode/lcof/all.docx

90.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)