22 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 12345678输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" 2020-12-30 algo leetcode 算法
37 解数独 编写一个程序,通过填充空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。 一个数独。 答案被标成红色。 提示: 给定的数独序列只包含数字 1-9 和字符 '.' 。 你可以假设给定的数独只 2020-12-30 algo leetcode 算法
77 组合 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 12345678910输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],] Solution 参考:《算法小抄》4.1 、[78 子集](78 子集.md) 回溯法 12345678910111213141516# @l 2020-12-30 algo leetcode 算法
78 子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 123456789101112输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] Solution 参考:《算法小抄》4.1 、**@lei-hou-ya** 迭代法 2020-12-30 algo leetcode 算法
25 K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->5 当 k = 3 时,应当返回: 3->2->1 2020-12-29 algo leetcode 算法
92 反转链表 II 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例: 12输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL Solution 迭代翻转 先拆分成三段,前段+翻转段(中段)+后段 link1 表示前段最后一 2020-12-29 algo leetcode 算法
234 回文链表 请判断一个链表是否为回文链表。 示例 1: 12输入: 1->2输出: false 示例 2: 12输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? Solution 借助数组记录节点,空间复杂度 O(n) 12345678910111213141516171819202122232425262728 2020-12-29 algo leetcode 算法
239 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1: 1234567891011输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值------- 2020-12-29 algo leetcode 栈和队列
236 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1: 123输入: root = [3,5,1 2020-12-28 algo leetcode 二叉树
496 下一个更大元素 I 给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。 nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。 示例 1: 123456输入: nums1 = [4,1,2], nums2 = [1 2020-12-28 algo leetcode 算法