Skip to content

Commit fd74a9b

Browse files
committed
提交部分easy题目
1 parent 83657de commit fd74a9b

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.mistray.array;
2+
3+
import com.sun.org.apache.xerces.internal.impl.xpath.regex.Match;
4+
5+
/**
6+
* @author ZJY(MistRay)
7+
* @Project algorithm-study
8+
* @Package com.mistray.array
9+
* @create 2020年05月21日 14:14
10+
* @Desc
11+
*/
12+
public class BestTimeToBuyAndSellStock121 {
13+
14+
// 思路,只允许交易一次.维护一个最小值low,与每一天的股票价格做差.
15+
// 最终得到的价格就是,最大的差价.
16+
// public int maxProfit(int[] prices) {
17+
// int max = 0;
18+
// int low = Integer.MAX_VALUE;
19+
// for (int price : prices) {
20+
// if (price < low){
21+
// low = price;
22+
// }
23+
// max = Math.max(max, price - low);
24+
// }
25+
// return max;
26+
// }
27+
28+
29+
// dp[-1][k][0] = 0
30+
// 解释:因为 i 是从 0 开始的,所以 i = -1 意味着还没有开始,这时候的利润当然是 0 。
31+
// dp[-1][k][1] = -infinity
32+
// 解释:还没开始的时候,是不可能持有股票的,用负无穷表示这种不可能。
33+
// dp[i][0][0] = 0
34+
// 解释:因为 k 是从 1 开始的,所以 k = 0 意味着根本不允许交易,这时候利润当然是 0 。
35+
// dp[i][0][1] = -infinity
36+
// 解释:不允许交易的情况下,是不可能持有股票的,用负无穷表示这种不可能。
37+
public int maxProfit(int[] prices) {
38+
int n = prices.length;
39+
int[][] dp = new int[n][2];
40+
for (int i = 0; i < n; i++) {
41+
if (i - 1 == -1) {
42+
dp[i][0] = 0;
43+
// 解释:
44+
// dp[i][0]
45+
// = max(dp[-1][0], dp[-1][1] + prices[i])
46+
// = max(0, -infinity + prices[i]) = 0
47+
dp[i][1] = -prices[i];
48+
//解释:
49+
// dp[i][1]
50+
// = max(dp[-1][1], dp[-1][0] - prices[i])
51+
// = max(-infinity, 0 - prices[i])
52+
// = -prices[i]
53+
continue;
54+
}
55+
dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1] + prices[i]);
56+
dp[i][1] = Math.max(dp[i-1][1],-prices[i]);
57+
}
58+
return dp[n-1][0];
59+
}
60+
}

leetcode/src/main/java/com/mistray/link/LinkedListCycleii142.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ public static void main(String[] args) {
1212

1313
}
1414

15+
// 思路 :
16+
// 快慢指针
17+
// 快指针一次走两格,慢指针一次走一格
18+
// 如果相遇,说明有环
1519
public ListNode detectCycle(ListNode head) {
1620
ListNode slow = head, fast = head;
1721
while (fast.next != null && fast.next.next != null) {

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<module>sort</module>
1313
<module>lru</module>
1414
<module>tree</module>
15-
<module>skip</module>
15+
<!--<module>skip</module>-->
1616
<module>leetcode</module>
1717
</modules>
1818
<name>algorithm-study</name>

0 commit comments

Comments
 (0)