关注Java领域相关技术 记录有趣的事情

LeetCode-1002. 查找常用字符

问题地址 LeetCode每日一题/2020-10-14 LeetCode1002. 查找常用字符 问题描述 规则 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 示例 示例1 输入: 输出: 示例2 输入: 输出: 提示: 1 <= A.length <= 100 1 <= A.length <= 100 A 是小写字母 解析 解题思路 统计每个字符串中字符出现次数,然后合并统计结果…
US-B.Ralph
2 years ago

LeetCode-24. 两两交换链表中的节点

问题地址 LeetCode每日一题/2020-10-13 LeetCode24. 两两交换链表中的节点 问题描述 规则 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换 示例 给定 1->2->3->4, 你应该返回 2->1->4->3. 解析 解题思路 单链表只能指向下一个节点。这里使用虚拟头节点进行操作; 数据操作分析 操作步骤见下图 复杂度分析 时间复杂度 空间复杂度 编码实现 public class LeetCode0024_SwapNodesInPairs { public…
US-B.Ralph
2 years ago

LeetCode-530. 二叉搜索树的最小绝对差

问题地址 LeetCode每日一题/2020-10-12 LeetCode530. 二叉搜索树的最小绝对差 问题描述 规则 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例 示例1 输入: 1 \ 3 / 2 输出:1 解释 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 提示: 树中至少有 2 个节点。 本题与 783 相同 解析 解题思路 我们都知道二叉搜索树左子树不大于根节点,右子树不小于根节点。我们采用中序遍历的处理这个问题; 方法一:先利用一次中序遍历将值保存在一个数组中再进行遍历求解; 方法二:在中序遍历的过程中…
US-B.Ralph
2 years ago

LeetCode-416. 分割等和子集

问题地址 LeetCode每日一题/2020-10-11 LeetCode416. 分割等和子集 问题描述 规则 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 示例1 输入: 输出: true 解释: 数组可以分割成 和 . 示例2 输入: 输出: false 解释: 数组不能分割成两个元素和相等的子集. 解析 解题思路 数据操作分析 复杂度分析 时间复杂度 空间复杂度 编码实现 public class LeetCode0416_PartitionEqualSubset…
US-B.Ralph
2 years ago

LeetCode-142. 环形链表 II

问题地址 LeetCode每日一题/2020-10-10 LeetCode142. 环形链表 II 问题描述 规则 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 示例1 输入:head = , pos = 1 输出:tail connects to node index 1 解释:链表中有一个环,其尾部连接到第二个节点。 示例2 输入:head = , pos = 0 输出:tail connects to n…
US-B.Ralph
2 years ago

LeetCode-141. 环形链表

问题地址 LeetCode每日一题/2020-10-09 LeetCode141. 环形链表 问题描述 规则 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 false 。 示例 示例1 输入:head = , pos = 1 输出:true 解释:链表中有一个环,其…
US-B.Ralph
2 years ago

LeetCode-344. 反转字符串

问题地址 LeetCode每日一题/2020-10-08 LeetCode344. 反转字符串 问题描述 规则 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 示例1 输入: 输出: 示例2 输入: 输出: 解析 解题思路 采用双指针 一个记录 当前元素的下标; 一个记录 当前元素对应的反转元素的下标; 给定数组,故数组的长度已知,所以 inx2(对应反转元素的下标) = len…
US-B.Ralph
2 years ago

LeetCode-75. 颜色分类

问题地址 LeetCode每日一题/2020-10-07 LeetCode75. 颜色分类 问题描述 规则 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例 输入: 输出: 进阶 一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。 你能想出一个仅使用常数空间的一趟扫描算法吗? 解析 解题思路 数据操作分析 见…
US-B.Ralph
2 years ago

LeetCode-834. 树中距离之和

问题地址 LeetCode每日一题/2020-10-06 LeetCode834. 树中距离之和 问题描述 规则 给定一个无向、连通的树。树中有 N 个标记为 0...N-1 的节点以及 N-1 条边 。 第 i 条边连接节点 edges 和 edges 。 返回一个表示节点 i 与其他所有节点距离之和的列表 ans。 示例 示例1 输入: N = 6, edges = ,,,,] 输出: 解释: 如下为给定的树的示意图: 0 / \ 1 2 /|\ 3 4 5 我们可以计算出 dist(0,1) + dist(0,2) + dist(0,3) + dist(0,4) + dist(0,5) …
US-B.Ralph
2 years ago

LeetCode-145. 二叉树的后序遍历

问题地址 LeetCode每日一题/2020-09-29 LeetCode145. 二叉树的后序遍历 问题描述 规则 给定一个二叉树,返回它的 *后序 遍历。 示例 输入: 1 \ 2 / 3 输出: 进阶 递归算法很简单,你可以通过迭代算法完成吗? 解析 解题思路 后序遍历:是按照访问左右根的顺序遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。整个遍历过程天然具有递归的性质。 递归遍历树的时候隐式的维护一个栈,我们使用迭代的方法遍历树,需要自己维护栈; 下面介绍一种方法标记法,针对树的前、中、后序遍历可以写统一模板的代码; 在使用栈时,无法同时处理访问节…
US-B.Ralph
2 years ago