草庐IT

LeetCode刷题之树

全部标签

LeetCode - #62 不同路径(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新了62期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等1.描述一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器

Leetcode 39. 组合总和

题目要求给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target的不同组合数少于150个。示例1:输入:candidates=[2,3,6,7],target=7输出:[[2,2,3],[7]]解释:2和3可以形成一组候选,2+2+3=7。注意2可以使用多次。7也是一个候选,7=7。仅有这两种组合。示例2:输入:

LeetCode - #145 二叉树的后序遍历

前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到144期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:简单1.描述给你二叉树的根节点root,返回它节点值的后序遍历。2.示例示例1输入:root=[1,null,2,3]输出:[

LeetCode-179-最大数

最大数题目描述:给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例说明请见LeetCode官网。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-number/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:数组排序首先,通过排序将给定的nums排序好,排序逻辑是通过一个比较器实现的,就是比较2个数正向连接和反向连接哪个比较大,然后按顺序将排序后的数组连接起来即可。备注:逻辑比较清晰,但是还是提交

图解LeetCode——775. 全局倒置与局部倒置(难度:中等)

一、题目给你一个长度为n的整数数组nums,表示由范围[0,n-1]内所有整数组成的一个排列。全局倒置的数目等于满足下述条件不同下标对(i,j)的数目:0nums[i]>nums[j]局部倒置的数目等于满足下述条件的下标i的数目:0nums[i]>nums[i+1]当数组nums中全局倒置的数量等于局部倒置的数量时,返回true;否则,返回false。二、示例2.1>示例1:【输入】nums=[1,0,2]【输出】true【解释】有1个全局倒置,和1个局部倒置。2.2>示例2:【输入】nums=[1,2,0]【输出】false【解释】有2个全局倒置,和1个局部倒置。提示:n==nums.len

图解LeetCode——剑指 Offer 50. 第一个只出现一次的字符

一、题目在字符串s中找出第一个只出现一次的字符。如果没有,返回一个单空格。s只包含小写字母。二、示例2.1>示例1:【输入】s="abaccdeff"【输出】'b'2.2>示例2:【输入】s=""【输出】''限制:050000三、解题思路根据题目描述,我们需要做到两点:【第1点】找出字符串s中,每个字符的出现次数;【第2点】去重保存字符在s中的出现顺序;那么针对上面的两点,我们创建两个变量:【int[]times】用于记录字符串s中每个字符的出现次数;【char[]order】用于记录字符串s中字符的出现顺序;具体的逻辑就是,首先遍历字符串s中的所有字符,然后保存在times中,其中key存储

LeetCode - #121 买卖股票的最佳时机(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到120期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:简单1.描述给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i

LeetCode - #75 颜色分类(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新了74期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等1.描述给定一个包含红色、白色和蓝色、共n个元素的数组nums,原地对它们进行排序,使得

Leetcode 139. 单词拆分

题目要求给你一个字符串s和一个字符串列表wordDict作为字典。请你判断是否可以利用字典中出现的单词拼接出s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:返回true因为"leetcode"可以由"leet"和"code"拼接成。示例2:输入:s="applepenapple",wordDict=["apple","pen"]输出:true解释:返回true因为"applepenapple"可以由"apple""pen""apple"拼接成。注意,你可以重复使

Leetcode 8. 字符串转换整数

题目要求请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,"123"->123,"0032"->32)。如果没有读入数字,则整数为0。必要时更改符号(从步骤2开始)。如果整数数超过32位有符