摘要:
Bitwise AND of Numbers Range 实现范围内的按位与 思路:首先将m与n做按位与得到tmp。对于tmp中为0的位,则最终结果也一定为0;对于tmp中为1的位,则要看m到n中间有没有数的这一位为0,方法是:将m的这一位及其低位全部置1得到数a,如果a<n,则说明m到n中间存在这 阅读全文
摘要:
Substring with Concatenation of All Words 寻找所有词连接的子串 思路:由于该字串是所有词典中的词连接的,所以该字串长度固定。因此本题可以看作一个滑动窗口的题。为了去除重复工作,每次滑动一个单词的长度,因此起始位置就有n种(n为单词长度)。每种起始位置的滑动策 阅读全文
摘要:
Best Time to Buy and Sell Stock 只能买1次的股票问题 思路:遍历数组的同时,记录到当前天为止的历史最低价格,那么在当前天卖出的最大收益就是当前价格减去历史最低价格,同时更新历史最大收益。 1 public class Solution { 2 public int m 阅读全文
摘要:
Copy List with Random Pointers 复制带随机指针的链表 思路1:使用哈希表,需要消耗O(N)的额外空间。 1 public class Solution { 2 /** 3 * @param head: The head of linked list with a ran 阅读全文
摘要:
Arithmetic Slices 算术片的个数 思路(最优解):序列型dp。每次记录一下以当前数为末尾的算术片的最大长度以及数的等差值。下一次就能求出算术片增加的个数。使用滚动指针来优化。时间复杂度O(n),空间复杂度O(1)。 1 public class Solution { 2 public 阅读全文
摘要:
Additive Number 加法数 思路:一开始以为要用DP来做,但是这道题除非能保证每个相加数的划分是唯一的(事实上不是唯一的),否则只能用搜索。 1 public class Solution { 2 public boolean isAdditiveNumber(String num) { 阅读全文