LeetCode
文章平均质量分 64
Evan_L
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题之路-每日一题-232. 用栈实现队列
前言今天周五,稍稍偷个懒。题目描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/p原创 2021-05-14 22:17:39 · 200 阅读 · 0 评论 -
LeetCode刷题之路-每日一题-227. 基本计算器 II
前言加班有点晚,但还是要坚持打开,搞道算法。题目描述给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。示例 1:输入:s = “3+2*2”输出:7解题思路看了提示,用栈来记录,还是没能做出来。多位数字不知道怎么处理,又不想花费太多时间了。题解,数字一定是连续出现的单个数字字符,通过数字运算就可以了。然后栈中只存放数字,把所有的栈中所有的数字都处理成加法运算。也就是说,减法:往栈中放一个 -num,乘法:先将栈顶的元素弹出再乘以当前数字,除法原创 2021-05-14 00:19:42 · 209 阅读 · 0 评论 -
LeetCode刷题之路-每日一题-1734. 解码异或后的排列
前言其实吧,今天这题我是放弃的。这位运算其中的规律,根本就不懂。于是看了一下题解。题目描述给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。给你 encoded 数组,请你返回原始数组 perm 。题目保证答案存在且唯一。提示:3转载 2021-05-11 23:51:01 · 259 阅读 · 0 评论 -
LeetCode刷题之路-每日一题-872. 叶子相似的树
前言尽管今天有点困,有些累,但是坚持博客是不能落下的!继续日更!昨天刚复习了树的结构,这不今天刚好每日一题就是有关树结构的。题目描述请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。来源:力扣(L原创 2021-05-10 22:46:03 · 136 阅读 · 0 评论 -
LeetCode刷题之路-栈-155. 最小栈
前言感谢队友推荐的学习群。今天的佛系刷题是:155 最小栈。题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-stack著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出原创 2021-05-08 23:13:50 · 172 阅读 · 0 评论 -
LeetCode刷题之路-动态规划-剑指 Offer 55 - II. 平衡二叉树
前言又是一天美丽的意外,反正二叉树也用的少,没怎么接触。题目描述输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。解题思路刚开始,第一反应还是用地龟。提交的时候,棋差一着啊。。只判断了顶级节点的树的深度差,没有处理左右子节点的深度差。但是一想,感觉这复杂度也太高了点吧。相当于每个节点都要地龟计算深度,然后再每个节点判断是否为完全二叉树。然后也没其他思路,所以就看了下题解。真的妙啊。官方术语叫,地龟 + 剪枝我理解转载 2021-05-06 23:07:46 · 146 阅读 · 0 评论 -
LeetCode刷题之路-动态规划-198. 打家劫舍
前言本来吧,我是做每日一题的,但是题目看了好久,没太搞明白。看了评论区,说干脆改成打家劫舍IV好了,于是我过来做打家劫舍了。。但万万没想到,反应还是没有小偷快。。。题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]转载 2021-05-05 11:39:07 · 317 阅读 · 1 评论 -
LeetCode刷题之路-每日一题-7. 整数反转
题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321解题思路本题之前做过,利用数学规律进行数字反转。也比较简单。需要注意的点是,溢出问题,这个需要用边界来控制。上代码: public int reverse(int x) { // 利用十进制的特点转载 2021-05-03 23:40:53 · 265 阅读 · 0 评论 -
LeetCode刷题之路-动态规划-42. 连续子数组的最大和-补0430
题目描述输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100解题思路 - 动态规划首先,不知道为啥发现04-30没有打卡,我都蒙了。然后又找不到草稿,只好重写一遍转载 2021-05-02 21:01:31 · 203 阅读 · 0 评论 -
LeetCode刷题之路-每日一题-554. 砖墙
题目描述给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属,但是由于 并不是直系 下属,因此没有体现在员工 1 的数据结构中。现在输入一个公司的所有员转载 2021-05-02 00:07:18 · 173 阅读 · 0 评论 -
LeetCode刷题之路-每日一题-137. 只出现一次的数字 II
题目描述给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3提示:1 <= nums.length <= 3 * 104-231 <= nums[i] <= 231 - 1nums 中,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次解题思路今天先放动态规划一码!做做《每日一题》一开始,完全没有思路。休息之后再战,想的是“”翻译 2021-05-01 23:48:16 · 556 阅读 · 1 评论 -
LeetCode刷题之路-动态规划-746. 使用最小花费爬楼梯
题目描述数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。解题思路 - 动态规划这个题肯定是得用动态规划来做的,因为从题目描述就能发现,爬上第i级阶梯最少花费,要不就是从第i-1级上来的,要不就是从第i-2级台阶上来的。但是思路一开始还原创 2021-04-29 22:46:11 · 193 阅读 · 0 评论 -
LeetCode刷题之路-动态规划-392. 判断子序列
前言说实话,这题对我来说并不简单,要不是之前对双指针有所了解,也只能落得个暴力解法:两重循环。但是动态规划这个是真的一点没有头绪,于是先用双指针凑数。题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。0 <= s.length <= 1000 <= t.length <= 10^4两个字符原创 2021-04-28 23:52:00 · 245 阅读 · 0 评论 -
LeetCode刷题之路-动态规划-121. 买卖股票的最佳时机
前言在此先立个FLAG,先定个小目标,比如先刷它个1000题。再加个BUFF,每天一题,也请各位大佬监督!言归正传,先从动态规划开始刷,为了增加信心,选择最简单开始:第121题,买卖股票的最佳时机题目描述解题思路首先本题确实简单,最不济也能通过暴力解法,通过遍历买入日期和卖出日期的两层循环遍历,取最大值。但是既然,咱是奔着动态规划去的当然就不能使用暴力解法了。动态规划三板斧:寻找dp含义寻找状态转移方程寻找初始条件这两步,目前我的思路是,怎么样在题目的基础上,建立一个函数,并且使原创 2021-04-28 00:07:29 · 171 阅读 · 1 评论