
数据结构与算法
刷题回顾,以Leetcode100作为基础,每日一题作为拓展
得得得个桔
这个作者很懒,什么都没留下…
展开
-
刷题回顾:Leetcode17 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的如下(与电话按键相同)。注意 1 不对应任何字母。原创 2024-07-25 10:32:43 · 340 阅读 · 0 评论 -
刷题回顾:Leetcode15 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。这题其实只要厘清是相向双指针知识点的话,难度就会骤降(双指针多画图,多多在脑海里面模拟)。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]注意,输出的顺序和三元组的顺序并不重要。原创 2024-07-23 14:54:51 · 320 阅读 · 0 评论 -
刷题回顾:Leetcode6 Z字形变换
首先观察题目,与其说他是Z字形变化不如说是N字形变换(题目纯纯唬人),具体可以看看实例2的解释是怎么解释的,可以自己脑海中模拟一下。理解怎么模拟的话,这题就比较好解决了,首先设置flag,对移动方向打个标,没当移动方向发生改变的时候就把flag值改变一下。给定一个字符串s,根据给定的行数numsRows,以从上往下,从左到右进行Z字形排列。get得到list的下标(位置)然后append具体的字符进去。思路并不难,但是里面涉及的操作对我来说有点陌生。flag打标的巧妙运用。原创 2024-07-22 16:38:03 · 384 阅读 · 0 评论 -
刷题回顾:Leetcode5最长回文子串
我们确定一个区间,然后这个区间不断向外扩充,并在这个扩充过程中有逻辑需求需要完成的,我们可以用动态DP去解决。像是在这到题目中,这个扩充过程的区间很好找(有个字符串,很容易确定下标),中间的逻辑需求就是怎么判断回文。,从a开始a对于本身就是一个回文字符子串,ab不回文,aba回文,abac不会文,在这个过程我们实际上是遍历了字符串下标从0到n-1的所有结果,但是看本题我们还需要找最长的。从转移方程以及区间DP的扩充区间整个抽象移动过程来说,i是要不断往左,而j是需要不断往右的(可以结合图像进行理解)。原创 2024-07-18 17:32:07 · 218 阅读 · 0 评论