【每日算法】LeetCode 138 —— 复制带随机指针的链表(二百二十八)
题目内容给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复 ...
Read more
【每日算法】LeetCode 137 —— 只出现一次的数字II(二百二十七)
题目内容给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 算法应该具有线性时间复杂度。 不使用额外空间来实现. 示例示例 1: 输入:nums = [2,2,3,2]输出:3 示例 2: 输入:nums = [0,1,0, ...
Read more
【每日算法】LeetCode 136 —— 只出现一次的数字(二百二十六)
题目内容给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例示例 1: 输入: [2,2,1]输出: 1 示例 2: 输入: [4,1,2,1,2]输出: 4 题解本题考 ...
Read more
【每日算法】LeetCode 135 —— 分发糖果(二百二十五)
题目内容老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢? 示例示例 1: ...
Read more
【每日算法】LeetCode 134 —— 加油站(二百二十四)
题目内容在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 - ...
Read more
【每日算法】LeetCode 133 —— 克隆图(二百二十三)
题目内容给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 class Node { public int val; public List neighbors;} 测试用例格式: ...
Read more
【每日算法】LeetCode 132 —— 分割回文串II(二百二十二)
题目内容给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。 返回符合要求的 最少分割次数 。 示例示例 1: 输入:s = “aab”输出:1解释:只需一次分割就可将 s 分割成 [“aa”,”b”] 这样两个回文子串。 示例 2: 输入:s = “a”输出:0 示例 3: 输入: ...
Read more
【每日算法】LeetCode 131 —— 分割回文串(二百二十一)
题目内容给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例示例 1: 输入:s = “aab”输出:[[“a”,”a”,”b”],[“aa”,”b”]] 示例 2: 输入:s = “a”输出:[[“ ...
Read more
【每日算法】LeetCode 130 —— 被围绕的区域(二百二十)
题目内容给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例示例 1: 输入:board = [[“X”,”X”,”X”,”X”],[“X”,”O”,”O”,”X”],[“X”,”X”, ...
Read more
【每日算法】LeetCode 129 —— 求根到叶子节点数字之和(二百一十九)
题目内容给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 ...
Read more