随笔分类 - LeetCode
摘要:LeetCode39.组合总和 题目描述 /** * 给定一个无重复元素的数组 candidates 和一个目标数 target , * 找出 candidates 中所有可以使数字和为 target 的组合。 * <p> * candidates 中的数字可以无限制重复被选取。 * <p> * 说
阅读全文
摘要:LeetCode37.解数独 题目描述 /** * 编写一个程序,通过填充空格来解决数独问题。 * <p> * 数独的解法需 遵循如下规则: * <p> * 数字 1-9 在每一行只能出现一次。 * 数字 1-9 在每一列只能出现一次。 * 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现
阅读全文
摘要:LeetCode36. 有效的数独 题目描述 /** * 请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 , * 验证已经填入的数字是否有效即可。 * <p> * 数字 1-9 在每一行只能出现一次。 * 数字 1-9 在每一列只能出现一次。 * 数字 1-9 在每一个以粗实线分隔的 3
阅读全文
摘要:leetCode29. 两数相除 题目描述 /** * 给定两个整数,被除数 dividend 和除数 divisor。 * 将两数相除,要求不使用乘法、除法和 mod 运算符。 * <p> * 返回被除数 dividend 除以除数 divisor 得到的商。 * <p> * 整数除法的结果应当截
阅读全文
摘要:LeetCode22.括号生成 题目描述 /** * * 数字 n 代表生成括号的对数,请你设计一个函数, * 用于能够生成所有可能的并且 有效的 括号组合。 * */ 思路分析 生成括号,可以 使用深度优先+剪枝的方式,将有效的组合保存到集合中,将无效的组合剪枝 编写一个深度优先的递归函数,实现不
阅读全文
摘要:LeetCode8. 字符串转换整数 (atoi) 题目描述 /** * 请你来实现一个 myAtoi(string s) 函数, * 使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 * <p> * 函数 myAtoi(string s) 的算法如下: *
阅读全文
摘要:LeetCode99. 恢复二叉搜索树 题目描述 /** * * 给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。 * 请在不改变其结构的情况下,恢复这棵树。 * <p> * 进阶:使用 O(n) 空间复杂度的解法很容易实现。 * 你能想出一个只使用常数空间的解决方案吗? * */
阅读全文
摘要:LeetCode98. 验证二叉搜索树 题目描述 /** * 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 * <p> * 假设一个二叉搜索树具有如下特征: * <p> * 节点的左子树只包含小于当前节点的数。 * 节点的右子树只包含大于当前节点的数。 * 所有左子树和右子树自身必须也是二叉搜
阅读全文
摘要:LeetCode97. 交错字符串 题目描述 /** * * 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 * s1 和 s2 交错 组成的。 * <p> * 两个字符串 s 和 t 交错 的定义与过程如下, * 其中每个字符串都会被分割成若干 非空 子字符串: * <p> * s
阅读全文
摘要:LeetCode96. 不同的二叉搜索树 题目描述 /** * * 给你一个整数 n , * 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种? * 返回满足题意的二叉搜索树的种数。 * */ 思路分析 对于数组中按照升序排列的元素,用这个数组组成一颗二叉搜索树,那么二
阅读全文
摘要:LeetCode94. 二叉树的中序遍历 题目描述 /** * * 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 * */ 思路分析 二叉树的遍历方式有三种,即前序中序和后序,三者的不同在于根节点的遍历顺序 如果先遍历根节点,再遍历左子树然后遍历右子树则为前序遍历 如果先遍历左子树,再
阅读全文
摘要:LeetCode93. 复原 IP 地址 题目描述 /** * * 给定一个只包含数字的字符串,用以表示一个 IP 地址, * 返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。 * <p> * 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能
阅读全文
摘要:LeetCode92. 反转链表 II 题目描述 /** * * 给你单链表的头指针 head 和两个整数 left 和 right , * 其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点, * 返回 反转后的链表 。 * */ 思路分析 将一个链表中指
阅读全文
摘要:LeetCode88. 合并两个有序数组 题目说明 /** * * 给你两个有序整数数组 nums1 和 nums2, * 请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 * <p> * 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 * 你可以
阅读全文
摘要:LeetCode86. 分隔链表 题目说明 /** * * 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔, * 使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 * <p> * 你应当 保留 两个分区中每个节点的初始相对位置。 * */ 思路分析 题目要求将
阅读全文
摘要:LeetCode82. 删除排序链表中的重复元素 II 题目说明 /** * * 存在一个按升序排列的链表,给你这个链表的头节点 head , * 请你删除链表中所有存在数字重复情况的节点, * 只保留原始链表中 没有重复出现 的数字。 * * 返回同样按升序排列的结果链表。 * */ 思路分析 删
阅读全文
摘要:LeetCode83. 删除排序链表中的重复元素 题目说明 /** * * 存在一个按升序排列的链表,给你这个链表的头节点 head , * 请你删除所有重复的元素,使每个元素 只出现一次 。 * * 返回同样按升序排列的结果链表。 * * */ 思路分析 删除链表中的重复元素,因为链表是有序的因此
阅读全文
摘要:LeetCode81. 搜索旋转排序数组 II 题目说明 /** * 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。 * <p> * 在传递给函数之前,nums 在预先未知的某个下标 * k(0 <= k < nums.length)上进行了 旋转 , * 使数组变为 [n
阅读全文
摘要:leetCode80. 删除有序数组中的重复项 II 题目描述 /** * 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 , * 返回删除后数组的新长度。 * * 不要使用额外的数组空间,你必须在 原地 修改输入数组 * 并在使用 O(1) 额外空间的条件下
阅读全文
摘要:LeetCode75. 颜色分类 题目说明 /** * * 给定一个包含红色、白色和蓝色,一共 n 个元素的数组, * 原地对它们进行排序,使得相同颜色的元素相邻, * 并按照红色、白色、蓝色顺序排列。 * <p> * 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 */ 思路分
阅读全文

浙公网安备 33010602011771号