- 博客(207)
- 收藏
- 关注
原创 LeetCode-剑指Offer-10- II. 青蛙跳台阶问题
题意描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。提示:0 <= n <= 100示例:示例一:输入:n = 2输出:2示例二:输入:n = 7输出:21解题思路:Alice: 好熟悉的题目,F...
2020-02-17 10:55:47
420
原创 LeetCode-剑指Offer-10- 斐波那契数列
题意描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000...
2020-02-17 10:31:27
404
原创 LeetCode-剑指Offer-06-从尾到头打印链表
题意描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。限制: 0 <= 链表长度 <= 10000示例:输入:head = [1,3,2]输出:[2,3,1]解题思路:Alice: 单向链表怎么反转啊 ?Bob: 单向链表可以反转啊,我们还做过题目哩,不过反转链表不如反转数组好写。Alice: 反转数组 ? 可以用Python列表直接切...
2020-02-16 00:13:08
453
原创 LeetCode-剑指Offer-03-数组中重复的数字
题意描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。2 <= n <= 100000示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 解题思路:Alice: 可以直接用集合 ...
2020-02-15 18:54:18
399
原创 LeetCode-200-岛屿数量
题意描述:给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例:示例一:输入:11110110101100000000输出: 1示例二:输入:11000110000010000011输出: 3解题思路:代码:cla...
2020-02-14 16:10:57
453
原创 LeetCode-剑指Offer-04-二维数组中的查找
题意描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:输入:[[1,2],[3,4]]2[[1,2,3],[4,5,6]]3[[1,2,3],[2,5,6],[3,8,9]]6输出:trueturetrue...
2020-02-06 23:28:53
366
原创 LeetCode-TX50题-题解
LeetCode-TX50题-题解题目地址: 在此。使用语言:Python????, Java ☕正在更新:True通知: ???? 第一轮已更新完毕。????标号标题题解 1001害死人不偿命的(3n+1)猜想O...
2020-02-05 17:34:00
458
原创 LeetCode-43-字符串相乘
题意描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。...
2020-02-05 16:14:13
272
原创 LeetCode-237-删除链表中的节点
题意描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:说明:链表至少包含两个节点。链表中所有节点的值都是唯一的。给定的节点为非末尾节点并且一定是链表中的一个有效节点。不要从你的函数中返回任何结果。示例:示例一:输入: head = [4,5,1,9], no...
2020-02-04 23:20:08
217
原创 LeetCode-5-最长回文子串
题意描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例:示例一:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例二:输入: "cbbd"输出: "bb"解题思路:代码:Python 方法一:双重循环暴力求解。class Solution: def longestPalin...
2020-02-04 21:38:49
296
原创 LeetCode-11-盛最多水的容器
题意描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳...
2020-02-04 19:23:04
310
原创 LeetCode-124-二叉树中的最大路径和
题意描述:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例:示例一:输入: [1,2,3] 1 / \ 2 3输出: 6示例二:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20...
2020-02-04 16:18:04
414
原创 LeetCode-236-二叉树的最近公共祖先
题意描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例:示例一:输入: root...
2020-02-03 23:14:18
281
原创 LeetCode-230-二叉搜索树中第K小的元素
题意描述:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest 函数?示例:示例一:输入: root = [3,1,4,null,2], k = 1 ...
2020-02-03 15:21:29
375
原创 LeetCode-89-格雷编码
题意描述:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例:示例一:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序...
2020-02-02 13:00:27
321
原创 LeetCode-46-全排列
题意描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路:Alice: 这道题和子集那道题应该是一样的,也是递归的解法。Bob:我先找找找规律吧。Alice: 就是这个意思,三个元素的全排...
2020-02-01 19:32:49
318
原创 LeetCode-78-子集
题意描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明 :解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]解题思路:Alice: 这道题在哪也见过,而且当时没有做出来,????Bob: ...
2020-02-01 13:55:45
334
原创 LeetCode-146-LRU缓存机制
题意描述:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最...
2020-01-31 21:26:01
423
原创 LeetCode-16-最接近的三数之和
题意描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).解题思路:Al...
2020-01-30 22:28:11
303
原创 LeetCode-15-三数之和
题意描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路...
2020-01-30 17:22:04
404
原创 LeetCode-62-不同路径
题意描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例:示例一:输入: m = 3, n = 2输出: 3...
2020-01-30 14:09:07
396
原创 LeetCode-23-合并K个排序链表
题意描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解题思路:Alice: 我想起来你以前反转链表的做法了。Bob: 你是说先把所有节点的值都存起来...
2020-01-29 20:24:42
254
原创 LeetCode-4-寻找两个有序数组的中位数
题意描述:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例:示例一:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例二:nums1 = [1, 2]nums2 = [3, 4]...
2020-01-29 14:26:17
266
原创 LeetCode-33-搜索旋转排序数组
题意描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例:示例一:输入: nums = [4,5,6,7,0...
2020-01-28 22:30:21
227
原创 LeetCode-148-排序链表
题意描述:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例:示例一:输入: 4->2->1->3输出: 1->2->3->4示例二:输入: -1->5->3->4->0输出: -1->0->3->4->5解题思路:Alice: 快速排序你会写吗 ?Bob...
2020-01-28 21:44:43
228
原创 LeetCode-215-数组中的第K个最大元素
题意描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。示例:示例一:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例二:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4解题思路:...
2020-01-27 22:40:11
253
原创 LeetCode-59-螺旋矩阵 II
题意描述:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]解题思路:Alice: 我明白了,????,LeetCode里面题目后面加了一个 II 的并不意味这 要比原来的题目难。Bob: 哈哈哈,也许就像这题一样,这是换汤...
2020-01-27 21:01:31
284
1
原创 LeetCode-54-螺旋矩阵
题意描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例:示例一:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例二:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12...
2020-01-27 18:37:56
257
原创 LeetCode-61-旋转数组
题意描述:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例:示例一:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2...
2020-01-25 22:22:39
430
原创 LeetCode-238-除自身以外数组的乘积
题意描述:给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。说明:请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)示例:输入: [1,2,3,...
2020-01-25 17:38:13
266
原创 LeetCode-8-字符串转换整数 (atoi)
题意描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这...
2020-01-23 20:19:33
284
原创 LeetCode-2-两数相加
题意描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ...
2020-01-21 17:42:49
299
原创 LeetCode-557-反转字符串中的单词 III
题意描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。示例:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 解题思路:Alice: 可以用Python 写,字符串的split...
2020-01-21 13:51:14
278
原创 LeetCode-344-反转字符串
题意描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例:示例一:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例...
2020-01-20 23:17:29
203
原创 LeetCode-292-Nim游戏
题意描述:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块...
2020-01-20 22:21:50
352
原创 LeetCode-237-删除链表中的节点
题意描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:说明:链表至少包含两个节点。链表中所有节点的值都是唯一的。给定的节点为非末尾节点并且一定是链表中的一个有效节点。不要从你的函数中返回任何结果。示例:示例一:输入: head = [4,5,1,9], no...
2020-01-20 20:40:47
154
原创 LeetCode-235-二叉搜索树的最近公共祖先
题意描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]说明:所有节点的值都是唯...
2020-01-20 19:11:38
164
原创 LeetCode-206-反转链表
题意描述:反转一个单链表。进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?示例:示例一:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路:Alice: 我记得你在PAT那套题目里面的反转链表用了一种比较奇怪的方法写的。没有修改链表的指向关系,对吗...
2020-01-20 11:40:29
490
原创 LeetCode-231-2的幂
题意描述:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例:示例一:输入: 1输出: true解释: 2^0 = 1示例二:输入: 16输出: true解释: 2^4 = 16示例三:输入: 218输出: false解题思路:Alice: 这题一看就是位运算,┓( ´∀` )┏Bob: 直接除 2 多好啊,就连着除几次,最后如果剩下一个 1 ...
2020-01-20 10:29:57
298
1
原创 LeetCode-217-存在重复元素
题意描述:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例:示例一:输入: [1,2,3,1]输出: true示例二:输入: [1,2,3,4]输出: false示例三:输入: [1,1,1,3,3,4,3,2,4,2]输出: true解题思路:Alice: 这道...
2020-01-19 21:34:14
261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅