8000 Update · fibers/ex-algorithm@5b0367b · GitHub
[go: up one dir, main page]

Skip to content

Commit 5b0367b

Browse files
committed
Update
1 parent aa78e1b commit 5b0367b

File tree

10 files changed

+224
-0
lines changed

10 files changed

+224
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
.git/*
44
.mvn/*
55
target
6+
*.class

src/main/java/com/fibers/algorithm/datastructure/ListNode.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ public ListNode(int t) {
99
val = t;
1010
}
1111

12+
public static void main(String[] args){
13+
System.out.println("aaaa");
14+
}
15+
1216
}

src/main/java/com/fibers/algorithm/leetcode/_004/Solution.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,10 @@ public double findMedianSortedArrays(int[] nums1, int[] nums2) {
3434

3535
return (sortedArray[indexMedian1] + sortedArray[indexMedian2]) / 2.0;
3636
}
37+
38+
public double findMedianSortedArrays2(int[] nums1, int[] nums2) {
39+
int len1 = nums1.length;
40+
int len2 = nums2.length;
41+
return 0.0;
42+
}
3743
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.fibers.algorithm.leetcode._054;
2+
3+
import com.fibers.utils.Utils;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class Solution {
9+
10+
public static void main(String[] args) {
11+
int[][] matrix = new int[][]{
12+
{1, 2, 3, 4},
13+
{5, 6, 7, 8},
14+
{9, 10, 11, 12}
15+
};
16+
17+
Solution s = new Solution();
18+
List<Integer> result = s.spiralOrder(matrix);
19+
20+
Utils.printList(result);
21+
}
22+
23+
24+
public List<Integer> spiralOrder(int[][] matrix) {
25+
List<Integer> result = new ArrayList<>();
26+
if (matrix == null) {
27+
return result;
28+
}
29+
30+
this.spiral(matrix, 0, 0, matrix.length - 1, matrix[0].length - 1, result);
31+
return result;
32+
}
33+
34+
private void spiral(int[][] matrix, int startX, int startY, int endX, int endY, List<Integer> result) {
35+
36+
for (int i = startY; i <= endY; i++) {
37+
result.add(matrix[startX][i]);
38+
}
39+
for (int i = startX + 1; i <= endX - 1; i++) {
40+
result.add(matrix[i][endY]);
41+
}
42+
for (int i = endY; i >= startY; i--) {
< 77F4 /td>
43+
result.add(matrix[endX][i]);
44+
}
45+
for (int i = endX - 1; i >= startX + 1; i--) {
46+
result.add(matrix[i][startY]);
47+
}
48+
49+
if (startX > endX && startY > endY) {
50+
this.spiral(matrix, startX + 1, startY + 1, endX - 1, endY - 1, result);
51+
}
52+
}
53+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.fibers.algorithm.leetcode._072;
2+
3+
public class Solution {
4+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.fibers.algorithm.leetcode._078;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class Solution {
7+
public List<List<Integer>> subsets(int[] nums) {
8+
List<List<Integer>> results = new ArrayList<>();
9+
10+
if (nums == null || nums.length == 0) {
11+
return results;
12+
}
13+
14+
int n = nums.length;
15+
int max = 1 << n;
16+
17+
for (int i = 0; i < max; i++) {
18+
19+
List<Integer> list = new ArrayList<>();
20+
int idx = 0;
21+
int j = i;
22+
while (j > 0) {
23+
if ((j & 1) == 1) {
24+
list.add(nums[idx]);
25+
}
26+
j = j >> 1;
27+
idx++;
28+
}
29+
results.add(list);
30+
}
31+
return results;
32+
}
33+
34+
public List<List<Integer>> subsets2(int[] nums) {
35+
List<List<Integer>> results = new ArrayList<>();
36+
37+
if (nums == null || nums.length == 0) {
38+
return results;
39+
}
40+
41+
dfs(results, new ArrayList<Integer>(), nums, 0);
42+
return results;
43+
}
44+
45+
46+
private void dfs(List<List<Integer>> results, List<Integer> temp, int[] nums, int start) {
47+
results.add(new ArrayList<>(temp));
48+
49+
for (int i = start; i < nums.length; i++) {
50+
temp.add(nums[i]);
51+
dfs(results, temp, nums, i + 1);
52+
temp.remove(temp.size() - 1);
53+
}
54+
}
55+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.fibers.algorithm.leetcode._189;
2+
3+
public class Solution {
4+
public void rotate(int[] nums, int k) {
5+
if (nums == null || nums.length == 0) {
6+
return;
7+
}
8+
9+
k = k % nums.length;
10+
11+
if (k == 0) {
12+
return;
13+
}
14+
15+
int len = nums.length;
16+
17+
for (int i = 0; i < len / 2; i++) {
18+
int temp = nums[i];
19+
nums[i] = nums[len - i - 1];
20+
nums[len - i - 1] = temp;
21+
}
22+
23+
for (int i = 0; i < k / 2; i++) {
24+
int temp = nums[i];
25+
nums[i] = nums[k - i - 1];
26+
nums[k - i - 1] = temp;
27+
}
28+
29+
for (int i = k; i < (len + k) / 2; i++) {
30+
int temp = nums[i];
31+
nums[i] = nums[len + k - i - 1];
32+
nums[len + k - i - 1] = temp;
33+
}ByteBuffer
34+
}
35+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.fibers.algorithm.leetcode._224;
2+
3+
import java.util.Stack;
4+
5+
public class Solution {
6+
public int calculate(String s) {
7+
if (s == null || s.length() == 0) {
8+
return 0;
9+
}
10+
11+
Stack<Character> stack = new Stack<>();
12+
13+
return 0;
14+
}
15+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.fibers.algorithm.leetcode._226;
2+
3+
import com.fibers.algorithm.datastructure.TreeNode;
4+
5+
public class Solution {
6+
public TreeNode invertTree(TreeNode root) {
7+
if (root == null) {
8+
return root;
9+
}
10+
11+
TreeNode temp = root.left;
12+
root.left = root.right;
13+
root.right = temp;
14+
15+
invertTree(root.left);
16+
invertTree(root.right);
17+
18+
return root;
19+
}
20+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.fibers.algorithm.leetcode._701;
2+
3+
import com.fibers.algorithm.datastructure.TreeNode;
4+
5+
public class Solution {
6+
public TreeNode insertIntoBST(TreeNode root, int val) {
7+
if (root == null) {
8+
return root;
9+
}
10+
11+
TreeNode t = root;
12+
TreeNode pre = null;
13+
while (t != null) {
14+
int temp = t.val;
15+
pre = t;
16+
if (val < temp) {
17+
t = t.left;
18+
}else{
19+
t = t.right;
20+
}
21+
}
22+
23+
if(val < pre.val){
24+
pre.left = new TreeNode(val);
25+
}else{
26+
pre.right = new TreeNode(val);
27+
}
28+
29+
return root;
30+
}
31+
}

0 commit comments

Comments
 (0)
0