LeeTCode
文章平均质量分 89
Mint2yx4
这个作者很懒,什么都没留下…
展开
-
求根号2的小数点后10000位,字节面试题随想
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-07-18 10:41:10 · 3012 阅读 · 2 评论 -
LeetCode高级算法之数学与其他
179. Largest Number比较最大数的问题, 很容易想到应该把首位越大的数排到前面, 关键在于首位相同的话如何比较两个字符串的大小,一个很直观的想法就是s1 + s2和 s2 + s1, 两个相比,谁大谁在前, 证明有点复杂, 可以把字符串按幂转换成一个整数来比较, 也可以尝试反证法, 具体见题解区要注意的边界条件是多个0的情况, 最后只留下一个0,代码如下class Solution {public: static bool mycmp(const string&a原创 2020-12-17 17:28:41 · 197 阅读 · 0 评论 -
LeetCode高级算法之设计问题
146. LRU Cache设计一个LRU机制的缓存, 要求获取key 和 设置key的时间复杂度为常数级别, 并且要将最近使用过的key的权重调整,首先想到要在常数时间内获取一个key那只能是用hash表,但是每次要更新当前的数据结构并且时间复杂度为常数, 顺序存储的结构如vector在这里就不能用了, 只能使用链表, 由于涉及头部删除,尾部添加, 随机删除,在O(1)复杂度能完成的只有双向链表, C++里的deque底层是用数组实现的, 所以我们要自己写一个DoubleLinkedLis原创 2020-12-15 15:51:57 · 142 阅读 · 0 评论 -
LeetCode高级算法之动态规划
152. Maximum Product Subarray这题与最大子序列和不同的地方在于, 乘积的状态转移不能用dp[i-1]*num[i]来获得, 因为存在负数的情况, 所以这题要用两个dp数组来进行状态转移maxdp[i] = max ( maxdp[i-1]*num[i] , mindp[i-1]*num[i], num[i] )mindp[i] = min (maxdp[i-1]*num[i], mindp[i-1]*num[i], num[i] )最终结果取maxdp中最大数即.原创 2020-12-14 12:02:54 · 138 阅读 · 0 评论 -
LeetCode 高级算法之排序与搜索
324. Wiggle Sort II这一题主要有两个知识点, 分别是快速选择, 3路分类, 分别对应了leecode里的215. Kth Largest Element in an Array和75. Sort Colors问题其中的第K大元素利用快速排序的原理可以快速找到第K大元素的位置, 时间复杂度O(n)模板代码如下:class Solution {public: int ans; void quickSelect(vector<int>&..原创 2020-12-10 00:46:49 · 158 阅读 · 0 评论 -
Leetcode 102/144/145 二叉树的前/中/后序遍历,迭代写法模板(C++)
今天在刷Leetcode的二叉树卡片,首先碰到的就是二叉树的三种遍历方法,递归方法很简单,但是要求用迭代的方法来写的话就没那么容易了,在题解区里看到了一个大神的模板化迭代写法,非常有新意,于是在这里写点自己的理解原文链接如下:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/miao-sha-quan-chang-ba-hou-lang-by-sonp/理论上来说,所有递归的算法都是可以用非递归来实现原创 2020-06-12 21:08:07 · 212 阅读 · 0 评论 -
Leetcode 栈与DFS探索卡片 94/494/133/200/150/739/155 (C++)
最近刷题数目上来了,一天能多刷几道,每道题发一个博客感觉有点耗时,就把当天刷的题目一起发上来做个总结;昨天刷了栈与队列的卡片,中等难度的题目陡然增多,脑子开始有点不够用了,部分题目还是得看题解才会做,不过没关系,已经形成了一个解题思路,如果一天就能掌握DFS的各种应用那应该算是表现不错,下面看题155 最小栈设计一个支持push,pop,top操作,并能在常数时间内检索...原创 2020-04-19 13:13:00 · 389 阅读 · 0 评论 -
Leetcode 279. 完全平方数 (C++)(小白学习之路)
题目描述279. 完全平方数难度中等380收藏分享切换为英文关注反馈给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9...原创 2020-04-16 10:56:35 · 822 阅读 · 0 评论 -
Leetcode 752. 打开转盘锁 (C++)(小白学习之路)
题目描述:你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为'0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一...原创 2020-04-15 10:09:12 · 539 阅读 · 5 评论 -
Leetcode 200. 岛屿数量 (C++)(小白学习之路)
题目描述:给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出:1示例2:输入:11000110000010000011输出: 3来源:力扣(LeetCode)...原创 2020-03-26 23:00:05 · 499 阅读 · 0 评论 -
Leetcode 26.283 删除排序数组中的重复项/移动零 (python, C++)(小白学习之路)
26. 删除排序数组中的重复项难度简单1364收藏分享切换为英文关注反馈给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 num...原创 2020-03-21 11:58:53 · 164 阅读 · 0 评论 -
Leetcode 151, 557. 翻转字符串 (C++, python)(小白学习之路)
题目描述:给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good ...原创 2020-03-21 09:58:21 · 160 阅读 · 0 评论 -
Leetcode 189. 旋转数组 (C++) (小白学习之路)
题目描述:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100...原创 2020-03-17 09:05:36 · 301 阅读 · 0 评论 -
Leetcode 209. 长度最小的子数组(小白学习之路)
题目描述:这个题目一开始我没有看清题目中要求是“连续”的子数组,因此最早想到的方法是讲整个数组排序,如果最大的数满足>=s,则输出1,最大加第二大的数满足,则输出2.遇到这个测试用例时报错s = 213, [12,28,83,4,25,26,25,2,25,25,25,12]明确题意后,首先想到的方法是1.暴力法,两个指针,遍历几乎所有情况,代码如下:class Sol...原创 2020-03-17 07:53:22 · 195 阅读 · 0 评论 -
Leetcode 561. 数组拆分 I (C++) 快速排序写法复习(小白学习之路)
题目描述:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/array-partition-i著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。最近按数据结构刷的题,不少简单题都可以直接调用有些语言里的内置函数解决,这道题挑出来写纯粹是复习一下快速排序的写法,题目乍一看题意有点奇怪,仔细一分析就能发现要达到...原创 2020-03-14 16:45:07 · 214 阅读 · 0 评论 -
Leetcode 54. 螺旋矩阵(C++) (小白学习之路)
最近忙着做项目实训,刷题的时间少了,代码写起来就有点手生,看来每天代码都不能少写啊。题目描述:给定一个包含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:输入:[ ...原创 2020-03-12 23:32:27 · 838 阅读 · 0 评论 -
Leetcode 498. 对角线遍历(C++, python) (小白学习之路)
最近在做数组相关的题,终于碰到了一个medium难度的题目,描述如下:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。说明:给定矩阵中的元素总数不会超过 100000 。看到题目我第一个想的总是暴力法,这道题的暴力算法也不难看出,a.每条对角线的行列下标之和为定数,b.按对角线下标之和为奇数还是偶数决定...原创 2020-03-07 14:31:04 · 510 阅读 · 0 评论 -
Leetcode 1. 两数之和(C++) (小白学习之路)
题目描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, ...原创 2020-03-04 13:09:47 · 278 阅读 · 0 评论 -
Leetcode 66. 加一(C++) (小白学习之路)
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4...原创 2020-03-05 13:56:16 · 249 阅读 · 0 评论