题
思
leetcode714
贪心没做出来,题解里虽然给出了贪心的解法,但是不好理解,不如它给的dp的做法简洁。
dp的办法很好,我很喜欢。
leetcode180
这题目根本就不对,谁说Id一定连续?答案居然是默认Id连续,真的无语。
leetcode1688
模拟题,照着题意走一遍。
代码
leetcode714
class Solution {
public int maxProfit(int[] prices, int fee) {
int[][] dp = new int[prices.length][2];
dp[0][0] = 0;
dp[0][1] = -prices[0];
for (int i = 1; i < prices.length; i++) {
dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] + prices[i] - fee);
dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);
}
return dp[prices.length - 1][0];
}
}
leetcode180
select
distinct log1.num ConsecutiveNums
from
Logs log1
join Logs log2 on log1.Id = log2.Id - 1
join Logs log3 on log1.Id = log3.Id - 2
where
log1.num = log3.num
and
log1.num = log2.num;
leetcode1688
class Solution {
public int numberOfMatches(int n) {
int matchCount = 0;
while (n > 1) {
if (n % 2 == 0) {
matchCount += n >> 1;
n = n >> 1;
} else {
matchCount += (n - 1) >> 1;
n = ((n - 1) >> 1) + 1;
}
}
return matchCount;
}
}