文章目录前言1.描述2.示例3.答案题解1题解2关于我们前言本题为LeetCode前100高频题本题由于没有合适答案为以往遗留问题,最近有时间将以往遗留问题一一完善。我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到83期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我
目录583.两个字符串的删除操作72.编辑距离583.两个字符串的删除操作583题目链接做法一:本题和1143.最长公共子序列基本相同,只要求出两个字符串的最长公共子序列长度即可,那么除了最长公共子序列之外的字符都是必须删除的,最后用两个字符串的总长度减去两个最长公共子序列的长度就是删除的最少步数。做法二:本题和115.不同的子序列相比,其实就是两个字符串都可以删除了dp[i][j]数组含义以i-1为结尾的字符串word1,和以j-1为结尾的字符串word2,想要达到相等,所需要删除元素的最少次数。递推公式(1)word1[i-1]与word[j-1]相等时,dp[i][j]=dp[i-1][
目录前言题目描述解题思路主功能函数分类大框架判断IPv4是否合法判断IPv6是否合法其余小边界条件(调试后得)完整代码前言这是一道常见的笔试面试题,我找实习已经碰到两次了,和矩阵的乘法出现频率一样高,你校招要是全程没遇到可以过来打我;(这道题大厂面试笔试也很常见);同时,评论区很多人吐槽这种题目是烂题,觉得debug很烦,边界很烦,条件太多,我笑了,等你真正进入公司,参与实际业务中的debug,那么debug的奥秘就能很好地从这道题中体现出来;而什么DP贪心之类的纯算法一年到头可能用不到几次;(刷题别刷魔怔了)题目描述请务必注意做笔试题时的好习惯,看下输入数据的范围!这道题中,也就是提示部分;
目录前言题目描述解题思路主功能函数分类大框架判断IPv4是否合法判断IPv6是否合法其余小边界条件(调试后得)完整代码前言这是一道常见的笔试面试题,我找实习已经碰到两次了,和矩阵的乘法出现频率一样高,你校招要是全程没遇到可以过来打我;(这道题大厂面试笔试也很常见);同时,评论区很多人吐槽这种题目是烂题,觉得debug很烦,边界很烦,条件太多,我笑了,等你真正进入公司,参与实际业务中的debug,那么debug的奥秘就能很好地从这道题中体现出来;而什么DP贪心之类的纯算法一年到头可能用不到几次;(刷题别刷魔怔了)题目描述请务必注意做笔试题时的好习惯,看下输入数据的范围!这道题中,也就是提示部分;
时间是伟大的作者,她能写出未来的结局。 ——卓别林目录题目描述:方法1:迭代法(翻指针)方法2:头插法 方法3:递归法 题目描述:给定单链表的头节点head,请反转链表,并返回反转后的链表的头节点。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]方法1:迭代法(翻指针)迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。和循环其实和像,都有结束的条件。这里就要用到我们之前学习的双指针的
时间是伟大的作者,她能写出未来的结局。 ——卓别林目录题目描述:方法1:迭代法(翻指针)方法2:头插法 方法3:递归法 题目描述:给定单链表的头节点head,请反转链表,并返回反转后的链表的头节点。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]方法1:迭代法(翻指针)迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。和循环其实和像,都有结束的条件。这里就要用到我们之前学习的双指针的
前言欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来哈希法~快乐数|四数相加II|赎金信的分享✨目录前言202.快乐数454.四数相加II383.赎金信总结202.快乐数✨题目链接点这里编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。示例1:输入:n=19输出:true解释:12+92=8282+22=6862+82=10012+02+0
977.有序数组的平方力扣题目链接(opensnewwindow)给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]示例2:输入:nums=[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1-104nums已按非递减顺序排序思路:暴力解法最直观的想法,莫过于:每个数平方之后,排个序,美滋滋,代码如下:classSolution{public:vec
977.有序数组的平方力扣题目链接(opensnewwindow)给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]示例2:输入:nums=[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1-104nums已按非递减顺序排序思路:暴力解法最直观的想法,莫过于:每个数平方之后,排个序,美滋滋,代码如下:classSolution{public:vec
个人主页:平行线也会相交欢迎点赞👍收藏✨留言✉加关注💓本文由平行线也会相交原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录1️⃣题目描述2️⃣题目解析3️⃣解题代码1️⃣题目描述一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来