自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 leetcode 腾讯精选50题 排序链表

题目解析题目解析:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路:使用归并排序。1,fast-slow找中点:直到...

2019-09-29 23:04:01 144

原创 leetcode 腾讯精选50题 LRU缓存机制

题目解析题目如下:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之...

2019-09-28 23:30:03 113

原创 leetcode 腾讯精选50题 环形链表||

题目解析题目如下:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node ...

2019-09-27 23:28:43 139

原创 leetcode 腾讯精选50题 环形链表

题目解析题目如下:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0...

2019-09-26 22:53:37 101

原创 leetcode 腾讯精选50题 只出现一次的数字

题目解析题目如下:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:用两个指针遍历数组实现。代码实现class Solution {public: ...

2019-09-26 00:16:26 105

原创 leetcode 腾讯精选50题 二叉树中的最大路径

题目解析题目如下:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7]-10/ 9 20/ 15 7输出: 42思路:...

2019-09-24 19:46:59 127

原创 leetcode 腾讯精选50题 投资股票的最佳时机2

题目解析题目如下:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候...

2019-09-24 09:25:02 102

原创 leetcode 腾讯精选50题 买卖股票的最佳时机

题目解析题目如下:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = ...

2019-09-22 22:59:42 224

原创 leetcode 腾讯精选50题 二叉树的最大深度

题目解析题目如下:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。思路:使用深度优先搜索计算二叉树的最大深度。代码实现class Solution {public:...

2019-09-21 23:12:53 507

原创 leetcode 腾讯精选50题 格雷编码

题目解析题目如下:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列...

2019-09-20 23:37:17 69

原创 leetcode 腾讯精选50题 合并两个有序数组

题目解析题目如下:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3...

2019-09-20 00:27:36 72

原创 leetcode 腾讯精选50题 子集

题目解析题目如下:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]思路:位运算法。一个大小为n且没有重复元素的数组,他的子集一共有2^n个,而且每一个整数对应的二进制数都...

2019-09-18 23:28:56 116

原创 leetcode 腾讯精选50题 爬楼梯

题目解析题目如下:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶思路:我们通过简单的计算不难看出,随着n的增长,爬楼梯的方法数成斐波那契数列增长。所以只要我们知道了n的前两个值,就可以计...

2019-09-17 22:49:33 112

原创 leetcode 腾讯精选50题 不同路径

题目解析题目如下:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -&g...

2019-09-17 00:03:31 98

原创 leetcode 腾讯精选50题 旋转链表

题目解析题目如下:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步...

2019-09-15 13:21:15 511

原创 leetcode 腾讯精选50题 螺旋矩阵II

题目解析题目如下:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]思路:同之前螺旋矩阵的思路大体相同,我们知道n,就可以确定边界,把边界条件定好之后按顺序转向就可以了。代码实现class Solution {public:...

2019-09-14 12:52:02 110

原创 leetcode 腾讯精选50题 螺旋矩阵

题目解析题目如下:给定一个包含 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, 6, 7, 8],[9,10,11,12]]输出: [...

2019-09-13 23:16:52 153

原创 leetcode 腾讯精选50题 最大子序和

题目解析题目如下:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路:很简单,我们把每一种情况都计算出来,如果有比之前值大的,就保存大的,遍历后就得到了最大值。代码实现class Soluti...

2019-09-12 23:25:55 90

原创 leetcode 腾讯精选50题 全排列

题目解析题目如下:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路:1.固定一个数字,选择此数字的存放位置,开头的数字然后处理省下数组中数的存放位置(递归)2.下次递归时数组中数据个数应该排除当前递归的数字,而下次递归结束时当前...

2019-09-11 22:37:59 164

原创 leetcode 腾讯精选50题 字符串相乘

题目解析题目如下:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 n...

2019-09-10 21:49:37 111

原创 leetcode 腾讯精选50题 搜索旋转排序数组

题目解析题目如下:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0...

2019-09-09 23:03:19 84

原创 leetcode腾讯精选50题 删除排序数组中的重复项

题目解析题目如下:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 ...

2019-09-08 22:42:28 90

原创 leetcode 腾讯精选50题 合并K个排序链表

题目解析题目如下:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:1->4->5,1->3->4,2->6输出: 1->1->2->3->4->4->5->6思路:合并K个排序链表,思路其实是和合并两个排序链表一致,之前我们是把l1和l2两个链表合并到l3,现在是将l[i]这些链表...

2019-09-07 23:03:16 111

原创 leetcode 腾讯精选50题 合并两个有序链表

题目解析题目如下:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:我们使用递归的思想来实现。首先判断两个链表是否为空,当不为空是,我们通过比较,获得较大的数,然后把新指针指向较大的那个。如果有一个链表...

2019-09-06 23:54:52 83

原创 leetcode 腾讯精选50题 有效的括号

题目解析题目如下:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 ...

2019-09-05 22:05:06 84

原创 leetcode 腾讯精选50题 最接近的三数之和

题目解析题目如下:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路:我们用三个指针来...

2019-09-04 23:41:43 62

原创 leetcode 腾讯精选50题 三数之和

题目解析题目如下:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]思路:我们用三...

2019-09-03 23:18:35 242

原创 leetcode 腾讯精选50题 最长公共前缀

题目解析题目如下:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。思路:选择第一个字符串作为对照标准,与第二个比较获得最长公共前缀res,再用res继...

2019-09-02 21:41:13 107

原创 leetcode 腾讯精选50题 盛水最多的容器

题目解析题目如下:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49思路:我首...

2019-09-01 21:08:27 110

原创 leetcode 腾讯精选50题 回文数

题目解析题目如下:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。思路:我们只需要将整数反转,然后判断反转后的整数和原来的整数是否相等就可以得到结果。如果整数为...

2019-08-31 21:31:17 81

原创 leetcode 腾讯精选50题 字符串转换整数

题目解析题目如下:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的...

2019-08-30 22:10:30 87

原创 leetcode 腾讯精选50题 整数反转

题目解析题目如下:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120 输出: 21思路:我们要得到的是一个倒过来的整数,可以通过除10取余来得到最后一位数,然后将这些数组成一个新的数,这就是我们需要的反转整数。...

2019-08-29 23:10:46 91

原创 leetcode 腾讯精选50题 最长回文子串

题目解析题目如下:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。思路:回文,就是倒过来和之前一样的片段。所以思路就是将整个字符串s倒过来。然后找到他们的最大公共子串。然而,并不是所有的字符串都可以这样找出最长的回文子串。例如:S = “abacdfgdc...

2019-08-28 23:18:12 137

原创 leetcode 腾讯精选50题 寻找两个有序数组的中位数

题目解析题目如下:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。思路:1,我们要找到中位数,就要对数组进行割。把有序数组分成左右两个部分,割的左右会有两个元素,分别是左边最大值和右边最小值。定义LMax= Max(LeftP...

2019-08-27 21:48:15 125

原创 leeetcode 腾讯精选50题 两数相加python/c++

相关目录题目解析Python实现C++实现题目解析Python实现C++实现

2019-08-26 20:25:35 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除