
刷题记录
文章平均质量分 58
我不买茶叶
机器人控制初探,永磁电机控制略懂,BLE协议栈入门,嵌入式开发深入中
展开
-
22.04.29机试记录
拼多多机试原创 2022-04-29 23:34:22 · 191 阅读 · 0 评论 -
力扣做题记录——HOT100:11.盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。示例1输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例2输入:height = [1,1]输出:1提示n == height.lengt原创 2022-04-17 21:06:39 · 512 阅读 · 0 评论 -
力扣做题记录——HOT100:17.电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字符组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例2输入:digits = ""输出:[]示例3输入:digits = "2"输出:["a","b","c"]提示0 <= digits.length <= 4digits[i原创 2022-04-17 18:59:21 · 385 阅读 · 0 评论 -
力扣做题记录——647.回文子串&5.最长回文子串
由于这两题的解法相似,因此本文将直接介绍通用解法,并直接给出两道题的代码。方法1 动态规划法首先本题可以使用动态规划法:状态:dq[i][j]表示字符串在[i, j]区间内的子串是否是一个回文串;状态转移方程:当s[i] == s[j] && (j - i < 2 || dp[i + 1][j - 1])时,dp[i][j] = true,否则为false。解释:当只有一个字符时,比如a自然是一个字符串;当有两个字符时,如果两个字符相等,比如aa,也是一个回文串;原创 2022-04-04 21:36:18 · 442 阅读 · 0 评论 -
力扣刷题记录——49.字母异位词分组&43.字符串相乘
49.字母异位词分组给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。示例1输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例2输入: strs = [""]输出: [[""]]示例3输入: strs = ["a"]输原创 2022-04-03 12:34:12 · 436 阅读 · 0 评论 -
力扣做题记录——290.单词规律&763.划分字母区间
290.单词规律给定一种规律pattern和一个字符串str,判断str是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。示例1输入: pattern = "abba", str = "dog cat cat dog"输出: true示例2输入:pattern = "abba", str = "dog cat cat fish"输出: false示例3输入: pattern = "aaaa", str原创 2022-04-02 17:11:11 · 350 阅读 · 0 评论 -
力扣做题记录——415.字符串相加
给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如BigInteger), 也不能直接将输入的字符串转换为整数形式。示例1输入:num1 = "11", num2 = "123"输出:"134"示例2输入:num1 = "456", num2 = "77"输出:"533"示例3输入:num1 = "0", num2 = "0"输出:"0"提示1 <= num1.length, num2.len原创 2022-04-01 22:09:28 · 255 阅读 · 0 评论 -
力扣做题记录——334.递增的三元子序列&238.除自身以外数组的乘积&560.和为K的子数组
334.递增的三元子序列给你一个整数数组nums,判断这个数组中是否存在长度为3的递增子序列。如果存在这样的三元组下标(i, j, k)且满足i < j < k,使得nums[i] < nums[j] < nums[k],返回true;否则,返回false 。示例1输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例2输入:nums = [5,4,3,2,1]输出:false解释:不存在满足题原创 2022-04-01 12:23:50 · 161 阅读 · 0 评论 -
力扣做题笔记——剑2 32.从上到下打印二叉树Ⅰ&从上到下打印二叉树Ⅱ&从上到下打印二叉树Ⅲ
Ⅰ.从上到下打印二叉树Ⅰ从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树:3,9,20,null,null,15,7, 返回:`[3,9,20,15,7]`**提示**1. `节点总数<=1000`思路很平常的广度优先遍历方法,使用一个队列记录每一层的节点。代码vector<int> levelOrder(TreeNode* root) { vector<int> res; if原创 2022-03-30 21:46:40 · 125 阅读 · 0 评论 -
力扣做题记录——169.多数元素&摩尔投票法
题目 给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于n/2的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1输入:[3,2,3]输出:3示例2输入:[2,2,1,1,1,2,2]输出:2进阶尝试设计时间复杂度为O(n),空间复杂度为O(1)的算法解决此问题。方法哈希表依次统计表中每个数据出现的次数。int majorityElement(vector<int>& nums) { unordere原创 2022-03-28 09:55:10 · 228 阅读 · 0 评论 -
力扣做题记录——剑2 12.矩阵中的路径&13.机器人的运动范围
题目12.矩阵中的路径 给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如,在下面的3×4的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。示例1输入:board = [["A","B","C","E"],["S","F","C","S"],["A",原创 2022-03-23 15:49:26 · 157 阅读 · 0 评论 -
力扣做题记录——剑2 06.从尾到头打印链表
题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例1输入:head = [1,3,2]输出:[2,3,1]限制0 <= 链表长度 <= 10000思路 我们知道,一个链表节点的定义中包含val和next两个成员变量,val是本节点的数据,next是下一节点的地址,链表只能从头到尾遍历而无法从尾到头遍历,因此这道题涉及到“反转”操作。那么就有两种思路,一种是反转链表,一种是反转数组。而反转数组又有两种思路,一种是先正向插入再反转,另一种是直接反向插原创 2022-03-21 11:45:16 · 1105 阅读 · 0 评论 -
力扣做题记录——剑2 05.替换空格
请实现一个函数,把字符串s中的每个空格替换成“%20”。示例1输入:s = "We are happy."输出:"We%20are%20happy."限制0 <= s的长度 <= 10000思路 第一个想法就是定义一个新的字符串,然后从前往后遍历s字符串,如果遍历到空格,就在新字符串中加上"%20",如果遍历到不是空格的字符,就将其加入新字符串。这个方法的时间复杂度是O(n),空间复杂度也是O(n)。 但是这道题还有更优的解法,我们可以使用原字符串,将空间复杂度降低至O原创 2022-03-20 18:23:18 · 358 阅读 · 0 评论 -
力扣做题记录——剑2 04.二维数组中的查找
在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例现有矩阵matrix如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定target=5,返回true。给定t原创 2022-03-20 11:49:03 · 388 阅读 · 0 评论 -
力扣做题记录——剑2-03.数组中重复的数字
在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中的某些数字是重复的,但不知道有几个数字重复了,也不知道每个数组重复了几次。请找出数组中任意一个重复的数字。示例1:输入:[]2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解答 本题虽然是简单题,但如果要在面试的时候遇到,可以多问面试官一句,他的需求是什么,如果是时间优先,那么可以使用字典来做;如果是空间优先,那么可以原地排序数组,然后遍历;如果要求时间复杂度O原创 2022-03-19 15:46:21 · 1159 阅读 · 0 评论 -
力扣做题记录——121.买卖股票的最佳时机&动态规划总结
这道题和之前做过的70.爬楼梯类似,都是有关动态规划的问题,因此在此总结一下动态规划相关的问题。为什么要用动态规划?Those who cannot remember the past are condemned to repeat it.记不起过去的人注定要重蹈覆辙 如计算“1+1+1+1”和计算“1+1+1+1+1”时,显然在式1的基础上再加1来计算式2是比逐步计算更快的方法。可能使用这个例子理解不充分,若有从1开始计算1,1+1,……,231-1个1相加的值,逐步相加的运行速度会非常原创 2022-03-16 19:06:38 · 730 阅读 · 0 评论 -
力扣做题记录——算法入门day10
力扣做题记录——算法入门day1021.合并两个有序链表206.反转链表21.合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例2输入:l1 = [], l2 = []输出:[示例3输入:l1 = [], l2 = [0]输出:[0]提示两个链表的节点数目范围是[0, 50]-100 <= Node.va原创 2022-03-15 10:32:30 · 232 阅读 · 0 评论 -
力扣做题记录——算法入门day9
力扣做题记录——算法入门day9542.01矩阵994.腐烂的橘子542.01矩阵 给定一个由0和1组成的矩阵mat,请输出一个大小相同的矩阵,其中每一个格子是mat中对应位置元素到最近的0的距离。两个相邻元素间的距离为1。示例1输入:mat = [[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[0,0,0]]示例2输入:mat = [[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[1,2,1]]原创 2022-03-13 18:43:32 · 237 阅读 · 0 评论 -
力扣做题记录——算法入门day8
力扣做题记录——算法入门day8617.合并二叉树116.填充每个节点的下一个右侧节点 今天的两道题主要和二叉树的结构有关。617.合并二叉树 给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。 注意: 合并过程必须从两个树的根节点原创 2022-03-12 12:51:30 · 287 阅读 · 0 评论 -
力扣做题记录——算法入门day7
力扣做题记录——算法入门day7733.图像渲染 今日的题目与图有关,主要是广度优先算法和深度优先算法。733.图像渲染 有一副以m x n的二维整数数组表示的图画image,其中image[m][n]表示该图画的像素值大小。你也被给予三个整数sr,sc和newColor。你应该从像素image[sr][sc]开始对图像进行上色填充。 为了完成上色工作,从初始像素开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像原创 2022-03-11 23:25:34 · 539 阅读 · 0 评论 -
力扣做题记录——算法入门day6
力扣做题记录——算法入门day63.无重复字符的最长子串567.字符串的排列 今天的两道题都主要针对的双指针的滑动窗口方法,做得有些吃力,也暴露了自己滑动窗口掌握得不好的问题。3.无重复字符的最长子串 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度原创 2022-03-09 17:51:04 · 192 阅读 · 0 评论 -
力扣做题记录——算法入门day5
力扣做题记录——算法入门day5876.链表的中间结点19.删除链表的倒数第N个结点876.链表的中间结点 给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例1输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val =原创 2022-03-08 15:17:14 · 249 阅读 · 0 评论 -
力扣做题记录——算法入门day4
力扣做题记录——算法入门day4344.反转字符串557.反转字符串中的单词III344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。示例1输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例2输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n"原创 2022-03-07 15:55:26 · 565 阅读 · 0 评论 -
力扣做题记录——70.爬楼梯
70.爬楼梯题目 假设你正在爬楼梯,需要n阶你才能到达楼顶。每次你可以爬1或2个台阶,你有多少种方法可以爬到楼顶呢?示例1输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例2输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶提示1 <= n <= 45 本题的重点在于推导,从最后一步往前看,第n阶楼梯只能从第n-1或第原创 2022-03-06 23:25:58 · 280 阅读 · 0 评论 -
力扣做题记录——算法入门day3
力扣做题记录——算法入门day3283.移动零167.两数之和II-输入有序数组283.移动零 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例2输入: nums = [0]输出: [0]提示1 <= nums.length <= 10^4-2^31 <= nums[i] <=原创 2022-03-06 12:17:25 · 559 阅读 · 0 评论 -
力扣做题记录——算法入门day1&2
力扣做题记录——算法入门day1&2Day1 二分查找704.二分查找功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Day1 二分查找704.二分查找题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个原创 2022-03-05 22:41:12 · 354 阅读 · 0 评论