
leetcode
小饼干超人
这个作者很懒,什么都没留下…
展开
-
判断字符串/列表中的元素是否只出现一次,以及找到只出现一次的元素
判断字符串/列表中的元素是否只出现一次,以及找到只出现一次的元素。原创 2022-08-04 21:57:25 · 2964 阅读 · 0 评论 -
Leetcode 287. 寻找重复数
题目给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) ...原创 2019-07-21 19:04:27 · 157 阅读 · 0 评论 -
Leetcode 101. 对称二叉树 (递归和迭代)
文章目录题目解答递归复杂度分析迭代复杂度分析参考题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...原创 2019-07-22 11:15:28 · 395 阅读 · 0 评论 -
Leetcode 107. 二叉树的层次遍历 II
文章目录题目解答非递归 C++栈+队列仅队列递归 java题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]来源:力扣(LeetCode)链接:https://leetcode-...转载 2019-07-22 15:30:14 · 167 阅读 · 0 评论 -
Leetcode102. 二叉树的层次遍历 和 Leetcode 107. 二叉树的层次遍历 II (一行代码的区别)以及429. N叉树的层序遍历
文章目录Leetcode 102. 二叉树的层次遍历解答Leetcode 107. 二叉树的层次遍历 II解答Leetcode 102. 二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]来源:力扣(Le...原创 2019-07-22 15:49:38 · 343 阅读 · 0 评论 -
已知后序与中序输出前序(先序)
有一颗如下图的二叉树已知后序与中序输出前序(先序):后序:3, 4, 2, 6, 5, 1(左右根)中序:3, 2, 4, 1, 6, 5(左根右)分析:因为后序的最后一个总是根结点,令 i 在中序中找到该根结点,则i把中序分为两部分,左边是左子树,右边是右子树。因为是输出先序(根左右),所以先打印出当前根结点,然后打印左子树,再打印右子树。左子树在后序中的根结点为root – (end...转载 2019-08-10 16:14:52 · 606 阅读 · 0 评论 -
根据前序序列和中序序列重建二叉树
文章目录题目解答题目已知:前序 1,2,4,7,3,5,6,8中序 4,7,2,1,5,3,8,6要求:重新构建一颗二叉树解答因为前序的第一个就是根节点,所以先找到根节点在中序中的位置求出左子树的长度,确定左子树在前序和中序中的范围,以及右子树在前序和中序中的范围求出两个序列中,左子树的范围和右子树的范围参考:重建二叉树...转载 2019-08-10 16:56:46 · 590 阅读 · 1 评论 -
三个以上的字符串消除
文章目录题目解答解法一:两个栈解法二:双指针题目对一个字符串中重复出现三次以上的字符进行消除。如'AAAABCCBBBA' - > 'BCCA','abbbcccbba'->'abba'解答解法一:两个栈一个栈放字符,一个栈放以当前字符结尾的最长连续串的长度,然后遍历字符串,如果当前字符跟字符栈的栈顶元素不同 ,那么你就检查长度栈的最后一个元素 看最长长度是否超过3,如果...原创 2019-08-22 12:45:45 · 3361 阅读 · 1 评论 -
leetcode 1184. 公交站间的距离 python 执行用时和消耗内存同时击败100%用户
题目环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。返回乘客从出发点 start 到目的地 destination 之间的最短距离。示例 1:输入:distance = [1,2,3,...原创 2019-09-21 22:44:05 · 335 阅读 · 0 评论 -
Leetcode 83. 删除排序链表中的重复元素 和 82. 删除排序链表中的重复元素 II
文章目录83. 删除排序链表中的重复元素题目解答83. 删除排序链表中的重复元素题目解答83. 删除排序链表中的重复元素题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCod...原创 2019-07-21 12:28:35 · 155 阅读 · 0 评论 -
leetcode 14. 最长公共前缀 多种解法及用一行代码解决的骚操作
文章目录题目解答解法一解法二解法三解法四:一行代码解决题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。...原创 2019-07-19 14:00:37 · 181 阅读 · 0 评论 -
leetcode 937 重新排列日志文件
题目你有一个日志数组 logs。每条日志都是以空格分隔的字串。对于每条日志,其第一个字为字母数字标识符。然后,要么:标识符后面的每个字将仅由小写字母组成,或;标识符后面的每个字将仅由数字组成。我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按字母顺序排序,忽略标识符,标识符仅用于表示关系。数...原创 2018-12-04 23:29:25 · 272 阅读 · 0 评论 -
分解质因数 python
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1...转载 2018-03-24 15:04:40 · 19044 阅读 · 9 评论 -
刷题 - 学习资源
LeetCode solutions in C++ 11 and Python3面试题转载 2019-04-14 16:36:01 · 263 阅读 · 0 评论 -
删除链表中重复的结点
文章目录题目解答思路一解答思路二题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5.解答思路一/*struct ListNode { int val; struct ListNode *next; ...转载 2019-06-09 16:03:43 · 129 阅读 · 0 评论 -
Leetcode 9.回文数
文章目录把数字转为字符串递归方法 112ms双指针法 92ms直接逆序解法一 80ms解法二 48ms进阶:不把数字转为字符串只反转一半数字 88 ms把数字转为字符串递归方法 112msclass Solution: def isPalindrome(self, x: int) -> bool: x = str(x) if len(x) &l...原创 2019-07-09 20:57:03 · 254 阅读 · 0 评论 -
Leetcode 33. 搜索旋转排序数组 和 81. 搜索旋转排序数组 II
文章目录33. 搜索旋转排序数组题目描述解答81. 搜索旋转排序数组 II题目描述解答33. 搜索旋转排序数组题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的...原创 2019-07-10 15:52:30 · 273 阅读 · 0 评论 -
leetcode 153. 寻找旋转排序数组中的最小值 和 154. 寻找旋转排序数组中的最小值 II
文章目录153. 寻找旋转排序数组中的最小值题目描述解答154. 寻找旋转排序数组中的最小值 II题目描述解答153. 寻找旋转排序数组中的最小值题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,...转载 2019-07-10 16:43:49 · 267 阅读 · 0 评论 -
leetcode的代码如何在本地编辑器中执行
问题描述刷leetcode的时候,想要在本地编辑器运行程序,会复制leetcode中编辑器的代码,如class Solution: def findMin(self, nums: List[int]) -> int:直接运行会报错Traceback (most recent call last): File "/LeetCode/154. 寻找旋转排序数组中的最小值 I...原创 2019-07-10 16:47:44 · 6003 阅读 · 0 评论 -
leetcode 415. 字符串相加 和 43. 字符串相乘
415. 字符串相加链接:https://leetcode-cn.com/problems/add-strings题目描述给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直...转载 2019-07-10 21:46:30 · 226 阅读 · 0 评论 -
leetcode-17 电话号码的字母组合
题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。解答class Solutio...原创 2018-10-16 14:25:51 · 134 阅读 · 0 评论