Javas细节

java Queue add/offer add:向队列末尾添加一个元素,若队列已满,则抛出异常 offer:不会抛异常,返回false。 remove/poll remove:移除队列队头元素,若队列

买卖股票的最佳时机

动态规划框架 状态转移方程 dp[i][k][0] = max(dp[i-1][k][0], dp[i-1][k][1] + prices[i]) dp[i][k][1] = max(dp[i-1][k][1], dp[i-1][k-1][0] - prices[i]) base case i=-1 and k = 0 dp[-1][k][0] = 0 : i = -1 表示第-1天,意味着还没开始 dp[-1][k][1] = -infinity : 表示还没开始就已经持有股票,

Java对象模型

对象在内存中的存储布局 对象存储在堆中,对象的引用在栈中,对象在内存中的存储布局如下: 对象头 mark word GC分代年龄 锁状态标记 哈希码 类型指针 lengt

背包九讲

0/1背包 有 N 件物品和一个容量为 V 的背包。每一件物品 i 的体积和价值分别是 $C_i$ 和 $W_i$, 请问将哪些物品装入背包可使价值总和最大? 状态转移方程:$dp[

完全平方数

有效的完全平方数 https://leetcode-cn.com/problems/valid-perfect-square/ 二分查找 注意发生越界的情况,所以用 long 代替 int。 完全平方数 返回一个正整数最少可以由几个完全平方数构成 https://leetcode-cn.com/problems/perfect-squares/ 数学解法 如果满足$4