Java
csdnzhwk
这个作者很懒,什么都没留下…
展开
-
leetcode腾讯精选练习50(49)——244.反转字符串
题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:...原创 2019-10-13 22:57:50 · 193 阅读 · 0 评论 -
leetcode腾讯精选练习50(33)——143.环形链表2
leetcode腾讯精选练习50(33)——143.环形链表2题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1...原创 2019-09-27 15:52:31 · 188 阅读 · 0 评论 -
leetcode腾讯精选练习50(32)——141.环形链表
leetcode腾讯精选练习50(32)——141.环形链表题目描述给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 ...原创 2019-09-26 17:17:57 · 146 阅读 · 0 评论 -
leetcode腾讯精选练习50(31)——只出现一次的数字
leetcode腾讯精选练习50(31)——只出现一次的数字题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:...原创 2019-09-25 11:19:44 · 149 阅读 · 0 评论 -
leetcode腾讯精选练习50(30)——二叉树的最大路径
leetcode腾讯精选练习50(30)——二叉树的最大路径题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7]-10/...原创 2019-09-25 00:04:50 · 146 阅读 · 0 评论 -
leetcode腾讯精选练习50(29)——买卖股票的最佳时机Ⅱ
leetcode腾讯精选练习50(29)——买卖股票的最佳时机Ⅱ题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 =...原创 2019-09-23 21:11:53 · 172 阅读 · 0 评论 -
leetcode腾讯精选练习50(28)——买卖股票的最佳时机
leetcode腾讯精选练习50(28)——买卖股票的最佳时机题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股...原创 2019-09-22 09:24:02 · 197 阅读 · 0 评论 -
leetcode腾讯精选练习50(27)——二叉树的最大深度
leetcode腾讯精选练习50(27)——二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https:/...原创 2019-09-21 20:38:17 · 242 阅读 · 0 评论 -
leetcode腾讯精选练习50(26)——格雷编码
leetcode腾讯精选练习50(26)——格雷编码题目描述格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,...原创 2019-09-20 16:51:44 · 275 阅读 · 0 评论 -
leetcode腾讯精选练习50(33)——146.LRU缓存机制
leetcode腾讯精选练习50(33)——146.LRU缓存机制题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则...原创 2019-09-28 18:32:23 · 183 阅读 · 0 评论 -
leetcode腾讯精选练习50(39)——206.反转链表
leetcode腾讯精选练习50(39)——206.反转链表题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.c...原创 2019-10-04 21:00:56 · 179 阅读 · 0 评论 -
leetcode腾讯精选练习50(47)——238.除自身以外的数组的乘积
leetcode腾讯精选练习50(46)——238.除自身以外的数组的乘积题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进...原创 2019-10-11 12:23:53 · 169 阅读 · 0 评论 -
leetcode腾讯精选练习50(46)——237.删除链表节点
leetcode腾讯精选练习50(46)——237.二叉树的最近公共祖先题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你...原创 2019-10-10 23:02:24 · 232 阅读 · 0 评论 -
leetcode腾讯精选练习50(45)——236.二叉树的最近公共祖先
leetcode腾讯精选练习50(45)——236.二叉树的最近公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8...原创 2019-10-09 12:28:46 · 182 阅读 · 0 评论 -
leetcode腾讯精选练习50(44)——235.二叉搜索树的最近公共祖先
leetcode腾讯精选练习50(43)——235.二叉搜索树的最近公共祖先题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0...原创 2019-10-08 19:53:20 · 210 阅读 · 0 评论 -
leetcode腾讯精选练习50(43)——231.2的幂
leetcode腾讯精选练习50(43)——231.2的幂题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro...原创 2019-10-07 11:48:32 · 178 阅读 · 0 评论 -
leetcode腾讯精选练习50(42)——215.数组中的第K个最大元素
leetcode腾讯精选练习50(42)——215.数组中的第K个最大元素题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 1示例 2:输入: root ...原创 2019-10-06 22:51:30 · 175 阅读 · 0 评论 -
leetcode腾讯精选练习50(41)——217.存在重复的元素
leetcode腾讯精选练习50(41)——217.存在重复的元素题目描述给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2...原创 2019-10-06 22:43:38 · 189 阅读 · 0 评论 -
leetcode腾讯精选练习50(40)——215.数组中的第K个最大元素
leetcode腾讯精选练习50(40)——206.反转链表题目描述在未排序的数组中找到第 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来源:力扣(LeetCode)链接:...原创 2019-10-04 21:06:06 · 188 阅读 · 0 评论 -
leetcode腾讯精选练习50(25)——合并两个有序数组
leetcode腾讯精选练习50(25)——合并两个有序数组今天是个值得纪念的日子,完成了一半的题库。题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nu...原创 2019-09-19 23:22:12 · 282 阅读 · 0 评论 -
leetcode腾讯精选练习50(24)——子集
leetcode腾讯精选练习50(24)——子集题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]来源:力扣(LeetCode)链接:https://leetcode-...原创 2019-09-18 17:37:46 · 132 阅读 · 0 评论 -
leetcode腾讯精选练习50(10)——the closest sum of three numbers
leetcode腾讯精选练习50(10)——the closest sum of three numbersDescription of the question给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,...原创 2019-09-04 14:58:09 · 154 阅读 · 0 评论 -
leetcode腾讯精选练习50(9)——三数之和
leetcode腾讯精选练习50(9)——三数之和题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-...原创 2019-09-03 16:00:19 · 209 阅读 · 0 评论 -
leetcode腾讯精选练习50(8)——最长公共前缀
leetcode腾讯精选练习50(8)——最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 ...原创 2019-09-02 13:24:28 · 138 阅读 · 0 评论 -
leetcode腾讯精选练习50(7)——盛水最多的容器
题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob...原创 2019-09-01 09:03:34 · 144 阅读 · 0 评论 -
leetcode腾讯精选练习50(5)——字符串转换整数
leetcode腾讯精选练习50(5)——字符串转换整数题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该...原创 2019-08-30 02:00:08 · 496 阅读 · 0 评论 -
leetcode腾讯精选练习50(4)——整数反转
leetcode腾讯精选练习50(4)——整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个...原创 2019-08-29 00:36:12 · 227 阅读 · 0 评论 -
leetcode腾讯精选练习50(3)——最长回文子串
leetcode腾讯精选练习50(3)——最长回文子串题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解法思路第一时间想到的自然是比较暴力的方法,即将字符串逆序后与源字符串比较,得到公共子串,...原创 2019-08-28 20:31:52 · 161 阅读 · 0 评论 -
leetcode腾讯精选练习50(21)——旋转链表
leetcode腾讯精选练习50(2)——寻找两个有序数组的中位数题目给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:num...原创 2019-08-27 15:56:25 · 162 阅读 · 0 评论 -
leetcode腾讯精选练习50(11)——有效的括号
leetcode腾讯精选练习50(11)——有效的括号题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true...原创 2019-09-05 13:48:33 · 195 阅读 · 0 评论 -
leetcode腾讯精选练习50(13)——合并K个排序链表
leetcode腾讯精选练习50(13)——合并K个排序链表题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://l...原创 2019-09-07 09:16:02 · 167 阅读 · 0 评论 -
leetcode腾讯精选练习50(23)——爬楼梯
leetcode腾讯精选练习50(23)——爬楼梯题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + ...原创 2019-09-17 13:33:43 · 145 阅读 · 0 评论 -
leetcode腾讯精选练习50(20)——螺旋矩阵(Ⅱ)
leetcode腾讯精选练习50(20)——螺旋矩阵(Ⅱ)题目描述给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/spiral-...原创 2019-09-14 13:33:09 · 146 阅读 · 0 评论 -
leetcode腾讯精选练习50(19)——螺旋矩阵
leetcode腾讯精选练习50(19)——螺旋矩阵建模第一天,头秃中…题目描述给定一个包含 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-09-13 22:57:44 · 188 阅读 · 0 评论 -
leetcode腾讯精选练习50(18)——最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCo...原创 2019-09-12 21:07:24 · 206 阅读 · 0 评论 -
leetcode腾讯精选练习50(17)——全排列
leetcode腾讯精选练习50(17)——全排列题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation...原创 2019-09-11 10:46:14 · 144 阅读 · 0 评论 -
leetcode腾讯精选练习50(16)——字符串相乘
leetcode腾讯精选练习50(16)——字符串相乘题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:nu...原创 2019-09-10 15:41:14 · 165 阅读 · 0 评论 -
leetcode腾讯精选练习50(15)——搜索旋转排序数组
leetcode腾讯精选练习50(15)——搜索旋转排序数组题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例...原创 2019-09-09 14:00:21 · 135 阅读 · 0 评论 -
leetcode腾讯精选练习50(14)——删除排序数组中的重复整数
leetcode腾讯精选练习50(14)——删除排序数组中的重复整数题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1...原创 2019-09-08 16:18:48 · 166 阅读 · 0 评论 -
leetcode腾讯精选练习50(1)——两数相加
两数相加这是一道来自leetcode的算法题目。题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 ...原创 2019-08-26 12:45:27 · 224 阅读 · 0 评论