Skip to content

Commit 7e9b04b

Browse files
author
xutao
committed
fix
1 parent 80b138d commit 7e9b04b

10 files changed

Lines changed: 139 additions & 24 deletions

Week01/26.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

Week01/LargestRectangleArea.java

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import java.util.Stack;
2+
3+
class LargestRectangleArea {
4+
5+
class Node {
6+
7+
int index;
8+
9+
int val;
10+
11+
public int getIndex() {
12+
return index;
13+
}
14+
15+
public void setIndex(int index) {
16+
this.index = index;
17+
}
18+
19+
public int getVal() {
20+
return val;
21+
}
22+
23+
public void setVal(int val) {
24+
this.val = val;
25+
}
26+
27+
Node(int index, int val) {
28+
this.index = index;
29+
this.val = val;
30+
}
31+
}
32+
33+
34+
public int largestRectangleArea(int[] heights) {
35+
if (heights.length == 0) {
36+
return 0;
37+
}
38+
Stack<Node> stack = new Stack<>();
39+
stack.push(new Node(0, -1));
40+
int maxArea = 0;
41+
int i = 0;
42+
int length = heights.length;
43+
while (i < length) {
44+
while (stack.peek().getVal() >= heights[i]) {
45+
Node top = stack.pop();
46+
Node preNode = stack.peek();
47+
int area = top.getVal() * (i - preNode.getIndex() );
48+
if (maxArea < area) {
49+
maxArea = area;
50+
}
51+
}
52+
stack.push(new Node(i+1, heights[i]));
53+
i++;
54+
}
55+
while (stack.peek().getVal() != -1) {
56+
Node node = stack.pop();
57+
int area = node.getVal() * (node.getIndex() - stack.peek().getIndex());
58+
if (maxArea < area) {
59+
maxArea = area;
60+
}
61+
62+
}
63+
64+
return maxArea;
65+
}
66+
}

Week01/RemoveDuplicates.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class RemoveDuplicates {
2+
public int removeDuplicates(int[] nums) {
3+
if (nums.length==0){return 0;};
4+
int i=0;
5+
for(int j =0;j<nums.length;j++)
6+
{
7+
if(nums[i]!=nums[j]) {
8+
nums[++i] = nums[j];
9+
}
10+
}
11+
return i+1;
12+
}
13+
}

Week02/242.java renamed to Week02/IsAnagram .java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
class Soltion {
1+
/**
2+
* 242
3+
*/
4+
class IsAnagram {
25

36
public boolean isAnagram(String s, String t) {
47
if (s.length() != t.length()) {

Week02/1.java renamed to Week02/TwoSum.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
class Solution {
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
/**
5+
* 1
6+
*/
7+
class TwoSum {
28
public int[] twoSum(int[] nums, int target) {
39
Map<Integer, Integer> map = new HashMap<>();
410
for (int i = 0; i < nums.length; i++) {
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import java.util.ArrayList;
22
import java.util.List;
33

4-
class Solution {
4+
/**
5+
* 22
6+
*/
7+
class GenerateParenthesis {
58

69
private List<String> list = new ArrayList();
710

@@ -15,10 +18,10 @@ public void rec(int left, int right, int n, String s) {
1518
list.add(s);
1619
}
1720
if (left > right) {
18-
rec(left, right+1, n, s + ")");
21+
rec(left, right + 1, n, s + ")");
1922
}
2023
if (left < n) {
21-
rec(left+1, right, n, s + "(");
24+
rec(left + 1, right, n, s + "(");
2225
}
2326
}
2427

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.List;
44
import java.util.Map;
55

6-
class Solution {
6+
class LetterCombinations {
77

88
private static List<String> result = new ArrayList<String>();
99
static Map<String, String> phone = new HashMap<String, String>() {{

Week03/50.java renamed to Week03/MyPow.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
class Solution {
1+
2+
/**
3+
* 50
4+
*/
5+
class MyPow {
26
public double myPow(double x, int n) {
3-
long N=n;
7+
long N = n;
48
if (N < 0) {
59
N = -N;
610
x = 1.0 / x;

Week03/78.java renamed to Week03/Subsets.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import java.util.ArrayList;
22
import java.util.List;
33

4-
class Solution {
4+
/** 78*/
5+
class Subsets {
56

67

7-
private List<List<Integer>> result = new ArrayList<List<Integer>>;
8+
private List<List<Integer>> result = new ArrayList<List<Integer>>();
89

910
public List<List<Integer>> subsets(int[] nums) {
1011
dfs(nums, new ArrayList(),nums.length, 0);

Week04/FindDisorder.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class FindDisorder {
2+
public static int findDisorder(int nums[]) throws Exception {
3+
if (nums.length < 2) {
4+
throw new Exception("error");
5+
}
6+
int left = 0;
7+
int right = nums.length - 1;
8+
int mid = (left + right) / 2;
9+
while (left < right) {
10+
11+
if (mid == 0 && nums[mid] > nums[mid + 1]) {
12+
return nums[mid];
13+
}
14+
if (mid == nums.length && nums[mid] < nums[mid - 1]) {
15+
return nums[mid];
16+
}
17+
if (nums[left] < nums[mid]) {
18+
left = mid;
19+
mid = (left + right) / 2;
20+
} else {
21+
right = mid;
22+
mid = (left + right) / 2;
23+
}
24+
}
25+
return nums[mid];
26+
27+
}
28+
29+
public static void main(String[] args) throws Exception {
30+
int arr[] = {4, 5, 6, 7, 8, 9, 1, 2, 3};
31+
System.out.println(findDisorder(arr));
32+
}
33+
}

0 commit comments

Comments
 (0)