随笔分类 -  leetcode

摘要:题目描述: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 要求:你可以在 O(n log n) 时间复杂度和常数级空间复杂度 示例: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0] 输出:[-1 阅读全文
posted @ 2020-11-05 11:14 small_lei_it 阅读(122) 评论(0) 推荐(0)
摘要:题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "() 阅读全文
posted @ 2020-10-13 09:36 small_lei_it 阅读(128) 评论(0) 推荐(0)
摘要:题目描述: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例: 输入:target = 9 输出:[[2,3,4],[4,5]] 题目分析: 假若我们输入的 target 为 9,大脑中 阅读全文
posted @ 2020-10-10 10:08 small_lei_it 阅读(93) 评论(0) 推荐(0)
摘要:题目: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解题思路: 回溯算法实际上一个类似枚举的搜索尝试过程, 在搜索尝试过程中寻找问题 阅读全文
posted @ 2020-09-30 10:36 small_lei_it 阅读(133) 评论(0) 推荐(0)
摘要:题目: 请判断一个链表是否为回文链表。 示例: 输入: 1->2 输出: false 输入: 1->2->2->1 输出: true 解题思路: 如果是数组求回文就很简单。我们可以使用双指针法来比较两端的元素,并向中间移动。一个指针从起点向中间移动,另一个指针从终点向中间移动。 然而这里是在链表中, 阅读全文
posted @ 2020-09-28 10:01 small_lei_it 阅读(109) 评论(0) 推荐(0)
摘要:题目: 一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 示例2: 给定二叉树 [1,2,2,3,3,null,null,4,4] 1 阅读全文
posted @ 2020-09-27 10:50 small_lei_it 阅读(166) 评论(0) 推荐(0)
摘要:题目: 给定二叉搜索树(BST)的根节点和一个值。你需要在 BST 中找到节点值等于给定值的节点。返回以该节点为根的子树。如果节点不存在,则返回 NULL 。 示例: 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 返回如下子树: 2 / \ 1 3 递归方法: func Gets 阅读全文
posted @ 2020-09-25 10:09 small_lei_it 阅读(168) 评论(0) 推荐(0)
摘要:题目描述: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 输入: ["MinStack","push" 阅读全文
posted @ 2020-09-22 09:29 small_lei_it 阅读(140) 评论(0) 推荐(0)
摘要:题目描述: 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。 方法:递归 func permutation( str []byte, i int) { if i > len(str 阅读全文
posted @ 2020-09-14 15:09 small_lei_it 阅读(342) 评论(0) 推荐(0)
摘要:题目描述: 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例: 输入: [1,3,4,2,2] 输出: 2 输入: [3,1,3,4,2] 输出: 3 解题思路: 按理这道 阅读全文
posted @ 2020-09-14 09:44 small_lei_it 阅读(230) 评论(0) 推荐(0)
摘要:题目描述: 最长上升子序列:给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 解题思路: 首先我们分析题目,要找的是最长上升子序列(Longest In 阅读全文
posted @ 2020-09-11 09:36 small_lei_it 阅读(452) 评论(0) 推荐(0)
摘要:题目描述: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node w 阅读全文
posted @ 2020-09-10 09:48 small_lei_it 阅读(146) 评论(0) 推荐(0)
摘要:题目描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 代码: /** * Definition for singly-linked list. 阅读全文
posted @ 2020-09-08 09:08 small_lei_it 阅读(160) 评论(0) 推荐(0)
摘要:题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 阅读全文
posted @ 2020-09-07 09:20 small_lei_it 阅读(763) 评论(0) 推荐(0)
摘要:题目描述: 给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。 示例1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其 阅读全文
posted @ 2020-09-04 09:32 small_lei_it 阅读(591) 评论(0) 推荐(0)
摘要:题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例1: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 解题思路: 首先我们思考,让我们删除倒数第N个元素,那我们只要找到倒数第N个元素就可以了 阅读全文
posted @ 2020-09-03 09:45 small_lei_it 阅读(146) 评论(0) 推荐(0)
摘要:题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 解题思路: 假设我们的链表分别为: l1 = [1,2,4] l2 = [1,3,4] 同时我们设定一个 " 阅读全文
posted @ 2020-09-03 09:26 small_lei_it 阅读(282) 评论(0) 推荐(0)
摘要:题目描述: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路: 双指针迭代 两个指针,第一个指针叫 prev,最初是指向 null 的。第二个指针是 head 本身,然后不断遍历 head。每次迭代到 head,都将 阅读全文
posted @ 2020-09-02 09:36 small_lei_it 阅读(212) 评论(0) 推荐(0)
摘要:题目描述: 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例1: 输入: 2 输出: [0,1,1] 示例2: 输入: 5 输出: [0,1,1,2,1,2] 解题思路: 首先计算二进制数中的 1 的数目,我们 阅读全文
posted @ 2020-08-28 09:13 small_lei_it 阅读(165) 评论(0) 推荐(0)
摘要:题目描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 示例2: 输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100] 要求使用 阅读全文
posted @ 2020-08-27 09:28 small_lei_it 阅读(124) 评论(0) 推荐(0)