leetcode每日一练
HU_LSS
这个作者很懒,什么都没留下…
展开
-
leetcode---回溯算法
回溯算法回溯算法框架:解决一个回溯问题,实际上就是一个决策树的遍历过程:1.路径:也就是已经做出的选择2.选择列表:你当前可以做的选择3.结束条件:到达决策树底层,无法再做选择的条件result = []def backtrack(路径,选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径,选择列表) 撤销选择其核心就是for循环里面的递归,在递归调用之前 【做选择】,在递归调原创 2020-07-28 10:46:00 · 88 阅读 · 0 评论 -
腾讯精选50题(7)
78.子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]C++(采用回溯方法)【稍微有点难懂,嘎嘎嘎】class Solution {public: vector&...原创 2019-08-11 14:02:50 · 82 阅读 · 0 评论 -
腾讯精选50题(9)
169.求众数https://leetcode-cn.com/problems/majority-element/给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 21.暴力法(py...原创 2019-08-12 12:36:57 · 116 阅读 · 0 评论 -
腾讯精选50题(10)
231.2的幂https://leetcode-cn.com/problems/power-of-two/给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true示例 2:输入: 16输出: true示例 3:输入: 218输出: false分析:这题很有意思因为2的幂次方的最高位为1,其他位都为0,所以将n与n-1进行与操作后,结果...原创 2019-08-12 12:49:46 · 118 阅读 · 0 评论 -
腾讯精选50题(12)
124.二叉树的最大路径和https://leetcode-cn.com/problems/binary-tree-maximum-path-sum/给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。...原创 2019-08-16 20:27:12 · 115 阅读 · 0 评论 -
腾讯精选50题(13)
230.二叉搜索树中第K小的元素https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst/给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k =...原创 2019-08-18 14:28:48 · 167 阅读 · 0 评论 -
腾讯精选50题(14)
235.二叉搜索树的最近公共祖先https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点x,满足 x 是 p、q 的祖先且 x 的深度...原创 2019-08-18 15:51:08 · 97 阅读 · 0 评论 -
腾讯精选50题(16)
146.LRU缓存机制https://mp.csdn.net/mdeditor/100086207运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。...原创 2019-08-26 21:30:49 · 94 阅读 · 0 评论 -
腾讯精选50题(15)
236.二叉树的最近公共祖先https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也...原创 2019-08-19 13:52:16 · 119 阅读 · 0 评论 -
腾讯精选50题(17)
292.Nim游戏https://leetcode-cn.com/problems/nim-game/你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如...原创 2019-08-30 17:47:17 · 194 阅读 · 0 评论 -
腾讯精选50题(19)
26.删除排序数组中的重复项https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/今天比较累,懒得抄题目了,hhh,但是看着图片的效果还不错这题主要就是数组是引用,在删除数组中的元素时,数组的长度也会跟着改变,注意就行,其他还好class Solution {public: int remove...原创 2019-08-30 20:50:43 · 412 阅读 · 0 评论 -
腾讯精选50题(18)
4.寻找两个有序数组的中位数https://leetcode-cn.com/problems/median-of-two-sorted-arrays/这道题是真的难,看了半天题解没看懂,后期可以多做几遍,下面直接放代码吧在这里插入代码片...原创 2019-08-31 10:01:06 · 109 阅读 · 0 评论 -
腾讯精选50题(20)
53.最大子序和https://leetcode-cn.com/problems/maximum-subarray/这题的思路也不错,可以记一下class Solution {public: int maxSubArray(vector<int>& nums) { int sum=0; int ans = nums[0]; ...原创 2019-08-31 10:50:44 · 156 阅读 · 0 评论 -
腾讯精选50题(8)
136.只出现一次的数字https://leetcode-cn.com/problems/single-number/给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: ...原创 2019-08-11 12:29:12 · 96 阅读 · 0 评论 -
腾讯精选50题(6)
148.排序链表https://leetcode-cn.com/problems/sort-list/在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3...原创 2019-08-10 18:05:54 · 98 阅读 · 0 评论 -
腾讯精选50题(11)
104.二叉树的最大深度https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],这题是一个很基础的数据结构树方面的题目cl...原创 2019-08-14 17:24:46 · 75 阅读 · 0 评论 -
leetcode每日一练(5)
帕斯卡三角形给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]/** * Return an array of arrays. * The sizes of the array...原创 2019-04-04 21:23:06 · 148 阅读 · 0 评论 -
leetcode每日一练(1)
15三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]分析:这题注意解决超时和...原创 2019-03-31 21:30:02 · 140 阅读 · 0 评论 -
leetcode每日一练(6)
删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?/** * Definition for si...原创 2019-04-05 20:02:50 · 116 阅读 · 0 评论 -
leetcode每日一练(7)
递增的三元子序列给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例 1...原创 2019-04-06 21:16:06 · 116 阅读 · 0 评论 -
leetcode每日一练(2)
二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7解析:掌握递归的方法/** * Definition for a binary tree node. * s...原创 2019-04-01 21:28:15 · 94 阅读 · 0 评论 -
leetcode每日一练(8)
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解析:中心扩展算法事实上,只需使用恒定的空间,我们就可以在 O(n^2) 的时间内解决这个问题。我们观察到回文中心的两侧互为镜像。因此,回文可...原创 2019-04-07 16:06:15 · 180 阅读 · 1 评论 -
Leetcode每日一练(3)
矩阵置零https://leetcode-cn.com/explore/interview/card/top-interview-questions-medium/29/array-and-strings/76/给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]...原创 2019-04-02 19:23:29 · 130 阅读 · 0 评论 -
腾讯精选50题(1)
155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。push(x) 将元素x推入栈中pop()删除栈顶元素top()获取栈顶元素getMin() 检索栈中最下元素示例:|MinStack minStack = new MinStack |...原创 2019-08-04 11:15:08 · 214 阅读 · 0 评论 -
腾讯精选50题(2)
20.有效的括号https://leetcode-cn.com/problems/valid-parentheses/给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例...原创 2019-08-05 11:55:22 · 136 阅读 · 0 评论 -
腾讯精选50题(3)
215.数组中第k个最大元素https://leetcode-cn.com/problems/kth-largest-element-in-an-array/在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1...原创 2019-08-06 16:45:01 · 104 阅读 · 0 评论 -
腾讯精选50题(4)
23.合并K个排序链表https://leetcode-cn.com/problems/merge-k-sorted-lists/合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6...原创 2019-08-07 16:44:57 · 86 阅读 · 0 评论 -
腾讯精选50题(5)
122.买卖股票的最佳时机||https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。原创 2019-08-07 19:01:37 · 430 阅读 · 0 评论 -
leetcode每日一练(4)
报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一...原创 2019-04-03 20:43:12 · 102 阅读 · 0 评论