![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
bingeox
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题:二叉树中的最大路径和(day50)
LeetCode刷题:二叉树中的最大路径和(day50)题目描述:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例2:输入: [-10,9,20,null,nul...原创 2019-06-28 08:39:19 · 204 阅读 · 0 评论 -
LeetCode刷题: 两数相加(day30)
LeetCode刷题: 两数相加(day30)题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5...原创 2019-06-08 10:16:08 · 118 阅读 · 0 评论 -
LeetCode刷题: 字集(day29)
LeetCode刷题: 字集(day29)题目描述:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]直接上代码:class ...原创 2019-06-07 07:16:24 · 92 阅读 · 0 评论 -
LeetCode刷题: 字符串相乘(day28)
LeetCode刷题: 字符串相乘(day28)题目描述:给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:...原创 2019-06-06 10:00:22 · 112 阅读 · 0 评论 -
LeetCode刷题: 全排列(day27)
LeetCode刷题: 全排列(day27)题目描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路:回溯法上代码了:class Solution { public List&...原创 2019-06-05 09:26:45 · 89 阅读 · 0 评论 -
LeetCode刷题: 字符串转换整数 (atoi)(day26)
LeetCode刷题: 字符串转换整数 (atoi)(day26)题目描述:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合...原创 2019-06-04 14:24:23 · 78 阅读 · 0 评论 -
LeetCode刷题: 二叉搜索树的最近公共祖先(day38)
LeetCode刷题: 二叉搜索树的最近公共祖先(day38)题目描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4...原创 2019-06-16 10:44:32 · 176 阅读 · 0 评论 -
LeetCode刷题: 最小栈(day37)
LeetCode刷题: 最小栈(day37)题目描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。pop()-- 删除栈顶的元素。top()-- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minS...原创 2019-06-15 13:59:16 · 115 阅读 · 0 评论 -
LeetCode刷题: 格雷编码(day41)
LeetCode刷题: 格雷编码(day41)题目描述:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列并不唯一。例...原创 2019-06-19 14:16:12 · 160 阅读 · 0 评论 -
LeetCode刷题: 最长回文子串(day25)
LeetCode刷题: 最长回文子串(day25)题目描述:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解题思路:一个字符串 s 可转换为数组 dp[i][j] ,i 为最长回文...原创 2019-06-03 11:49:28 · 148 阅读 · 0 评论 -
LeetCode刷题: 最接近的三数之和(day24)
LeetCode刷题: 最接近的三数之和(day24)题目描述:给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-...原创 2019-06-02 07:45:12 · 107 阅读 · 0 评论 -
LeetCode刷题: 不同路径(day31)
LeetCode刷题: 不同路径(day31)题目描述:一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和n的值均不超过 100。示例...原创 2019-06-09 10:40:16 · 139 阅读 · 0 评论 -
LeetCode刷题: 环形链表(day32)
LeetCode刷题: 环形链表(day32)题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示...原创 2019-06-10 09:31:51 · 116 阅读 · 0 评论 -
LeetCode刷题: 环形链表 II(day33)
LeetCode刷题: 环形链表 II(day33)题目描述:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos ...原创 2019-06-11 08:31:04 · 144 阅读 · 0 评论 -
LeetCode刷题:LRU缓存机制(day49)
LeetCode刷题:LRU缓存机制(day49)题目描述:运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数...原创 2019-06-27 16:36:28 · 142 阅读 · 0 评论 -
LeetCode刷题:合并K个排序链表(day48)
LeetCode刷题:合并K个排序链表(day48)题目描述:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6思路:大根堆中的个数保持为<= k, ...原创 2019-06-26 21:36:38 · 106 阅读 · 0 评论 -
LeetCode刷题: 数组中的第K个最大元素(day40)
LeetCode刷题: 数组中的第K个最大元素(day40)题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k ...原创 2019-06-18 16:22:11 · 116 阅读 · 0 评论 -
LeetCode刷题:寻找两个有序数组的中位数(day47)
LeetCode刷题:寻找两个有序数组的中位数(day47)题目描述:给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:...原创 2019-06-25 17:13:56 · 96 阅读 · 0 评论 -
LeetCode刷题: 除自身以外数组的乘积(day39)
LeetCode刷题: 除自身以外数组的乘积(day39)题目描述:给定长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在O(n) 时间复杂度内完成此题。进阶:...原创 2019-06-17 16:55:52 · 109 阅读 · 0 评论 -
LeetCode刷题: 二叉树的最近公共祖先(day46)
LeetCode刷题: 二叉树的最近公共祖先(day46)题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,...原创 2019-06-24 18:06:13 · 95 阅读 · 0 评论 -
LeetCode刷题: 二叉搜索树中第K小的元素(day45)
LeetCode刷题: 二叉搜索树中第K小的元素(day45)题目描述:给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \1 4 \ 2输出: 1示...原创 2019-06-23 17:44:03 · 114 阅读 · 0 评论 -
LeetCode刷题: 螺旋矩阵 II(day44)
LeetCode刷题: 螺旋矩阵 II(day44)题目描述:给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]思路同前一篇差不多class Solution { public int[][] gene...原创 2019-06-22 19:28:52 · 140 阅读 · 0 评论 -
LeetCode刷题: 螺旋矩阵(day43)
LeetCode刷题: 螺旋矩阵(day43)题目描述:给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5,...原创 2019-06-21 15:12:41 · 123 阅读 · 0 评论 -
LeetCode刷题: 搜索旋转排序数组(day42)
LeetCode刷题: 搜索旋转排序数组(day42)题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别...原创 2019-06-20 17:47:41 · 116 阅读 · 0 评论 -
LeetCode刷题: 三数之和(day23)
LeetCode刷题: 三数之和(day23)题目描述:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0...原创 2019-06-01 21:34:08 · 118 阅读 · 0 评论 -
LeetCode刷题: 盛最多水的容器(day21)
LeetCode刷题: 盛最多水的容器(day21)题目描述:给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组...原创 2019-05-30 11:05:56 · 119 阅读 · 0 评论 -
LeetCode刷题: 相交链表(day36)
LeetCode刷题: 相交链表(day36)题目描述:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the no...原创 2019-06-14 08:23:47 · 113 阅读 · 0 评论 -
LeetCode刷题:二叉树的最大深度(day15)
LeetCode刷题:二叉树的最大深度(day15)题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路:...原创 2019-05-24 13:38:55 · 178 阅读 · 0 评论 -
LeetCode刷题:有效的括号(day7)
LeetCode刷题:有效的括号(day7)题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: ...原创 2019-05-16 17:06:56 · 94 阅读 · 0 评论 -
LeetCode刷题:最长公共前缀(day6)
LeetCode刷题:最长公共前缀(day6)题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。大...原创 2019-05-15 19:17:37 · 144 阅读 · 0 评论 -
LeetCode刷题:最大子序和(day13)
LeetCode刷题:最大子序和(day13)题目描述:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。思路:定义一个函数f(n),以第n个数为结束点的子数列的最大和,存在一个递推关...原创 2019-05-22 08:29:56 · 142 阅读 · 0 评论 -
LeetCode刷题:删除链表中的节点(day12)
LeetCode刷题:删除链表中的节点(day12)题目描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你...原创 2019-05-21 09:35:21 · 158 阅读 · 0 评论 -
LeetCode刷题:合并两个有序数组(day11)
LeetCode刷题:合并两个有序数组(day11)题目描述:给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:...原创 2019-05-20 15:00:47 · 97 阅读 · 0 评论 -
LeetCode刷题:Nim 游戏(day5)
LeetCode刷题:Nim 游戏(day5)题目描述:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;...原创 2019-05-14 13:22:09 · 136 阅读 · 0 评论 -
LeetCode刷题:将一个 32 位有符号整数的每位上的数字进行反转(day1)
给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。代码实现class Solution ...原创 2019-05-10 15:01:06 · 205 阅读 · 0 评论 -
LeetCode刷题:判断一个整数是否是回文数(day2)
判断一个整数是否是回文数“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。注意...原创 2019-05-11 14:58:16 · 345 阅读 · 0 评论 -
LeetCode刷题:反转字符串(day3)
反转字符串题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 ...原创 2019-05-12 08:11:03 · 123 阅读 · 0 评论 -
LeetCode刷题:买卖股票的最佳时机(day16)
LeetCode刷题:买卖股票的最佳时机(day16)题目描述:给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 ...原创 2019-05-25 09:00:17 · 157 阅读 · 0 评论 -
LeetCode刷题:合并两个有序链表(day8)
LeetCode刷题:合并两个有序链表(day8)题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来吧show me the code:/** * Definition for singly-l...原创 2019-05-17 23:26:41 · 85 阅读 · 0 评论 -
LeetCode刷题: 排序链表(day35)
LeetCode刷题: 排序链表(day35)题目描述:在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路1:...原创 2019-06-14 08:20:28 · 104 阅读 · 0 评论