09 2020 档案
摘要:题目简单,练习一下 BFS 与 DFS。 BFS: private final boolean isLeaf(TreeNode node) { return node.left == null && node.right == null; } public final int sumOfLeftLe
阅读全文
摘要:JAVA DFS 标记解法: public final int countBattleshipsDFS(char[][] board) { if (board.length == 0 || board[0].length == 0) return 0; int res = 0; for (int i
阅读全文
摘要:最优解法为借助贝祖定理计算最大公约数,但本次只拿出 BFS 解法。个人觉着虽然效率低下,但BFS 解法更接近计算机思维,我们告诉计算机如何去做,其余的由来计算机完成。更符合刷题的初衷。 JAVA: private final boolean canMeasureWaterBFS(int x, int
阅读全文
摘要:设计逻辑运算,真值表达式为: public final int singleNumber0(int[] nums) { int x = 0, y = 0; for (int i = 0; i < nums.length; i++) { int z = nums[i]; x = (x & ~y & ~
阅读全文
摘要:常规计数: public final int singleNumber0(int[] nums) { Arrays.sort(nums); for (int i = 0; i < nums.length; i++) { if (i > 0) { if (nums[i] == nums[i - 1])
阅读全文
摘要:JAVA: public final int rob(TreeNode root) { Map<String, Integer> cache = new HashMap<String, Integer>(); return Math.max(rob(root, true, cache), rob(r
阅读全文
摘要:概率问题,蓄水池抽样与生成随机数都可以解决。蓄水池抽样适合数据量巨大且不知道数组集合大小时的随机抽样,因为是线性扫描每一个元素进行抽样,空间复杂度为 O(1) ,时间复杂度为O(n)。 蓄水池抽样算法: class Solution { ListNode head; Random random; p
阅读全文