随笔分类 - LeetCode
摘要:问题链接 "LeetCode 367. Valid Perfect Square" 题目解析 判断一个正数是否是完全平方数,不可使用sqrt函数。 解题思路 这是一道简单题,但是却挺有思考价值的。本题有很多种解法,思路各异,可以都看看。 无数种解法 解法一 数学里有一个概念叫做等差数列,完全平方数恰
        阅读全文
                
摘要:问题链接 "LeetCode 81. Search in Rotated Sorted Array II" 题目解析 给定一个“升序”的数组,从中寻找目标值。“升序”:旋转后的升序,例如 [4,5,1,2,3]。 时间限制:$O(lgN)$。 解题思路 本题与上一题 "LeetCode 33. Se
        阅读全文
                
摘要:问题链接 "LeetCode 33. Search in Rotated Sorted Array" 题目解析 给定一个 “升序” 的 无重复 数组,从中寻找目标值。“升序”:旋转后的升序,例如 [4,5,1,2,3]。 时间限制:$O(lgN)$。 解题思路 题目要求在 $O(lgN)$ 时间内找
        阅读全文
                
摘要:问题链接 "LeetCode 40. Combination Sum II" 题目解析 给一组数和一个目标值,求和为目标值的组合。数组中的每个数最多只能取一次。 解题思路 本题与上一题 "LeetCode 39. Combination Sum" 十分相似,改变的条件是: 数组中每个元素最多只能取一
        阅读全文
                
摘要:问题链接 "LeetCode 39. Combination Sum" 题目解析 给一组数和一个目标值,求和为目标值的组合。数组中的每个数可以取多次。 解题思路 像这种结果要求返回所有符合要求解的题,十有八九都是要利用到递归,而且解题的思路都大同小异,可以发现这些题目发现都是一个套路,都是需要另写一
        阅读全文
                
摘要:突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间。 dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对应的随笔下面评论区留言,我会及时处理,在此谢过了。 过程或许会很漫长,也很痛苦,慢慢来吧。 | 编号
        阅读全文
                
摘要:问题链接 "LeetCode 46. Permutations" 题目解析 求解一个无重复元素序列的全排列。 解题思路 什么是全排列?理解一下题意,简单来讲,就是求解序列中元素的所有排列方法,一共有A(n, n)=n!种排列。可以采用递归、非递归、插空等方法求解。 求解全排列参考链接: "数组的全排
        阅读全文
                
摘要:问题链接 "LeetCode 31. Next Permutation" 题目解析 求序列的下一个字典序列。 解题思路 什么是下一个字典序列?了解一下: "next_permutation(全排列算法)" 。算法的核心思想: 从序列尾部开始往前寻找两个相邻元素,设为( i, ii),即有 $\ i 
        阅读全文
                
摘要:问题链接 "LeetCode 32. Longest Valid Parentheses" 题目解析 给出只包含左右括号的字符串,返回最长的括号匹配字符串长度。 解题思路 括号匹配问题一般借助 栈 ,便于理解。定义 $start$ 记录合法字符串的起始位置,遍历字符串: 当遇到左括号,则把其索引压入
        阅读全文
                
摘要:问题链接 "LeetCode 29. Divide Two Integers" Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT
        阅读全文
                
摘要:问题链接 "LeetCode 24. Swap Nodes in Pairs" 题目解析 给出链表,每两个节点之间交换顺序,求新的链表。 解题思路 其实不是很难,基本链表操作。直接迭代就好,注意一个问题,必须保留当前交换的两节点的前一节点指针,因为最后还得与之前链表连接上,所以最好的方法是保存前一节
        阅读全文
                
摘要:问题链接 "LeetCode 22. Generate Parentheses" 题目解析 括号匹配问题:给出数字n,求n对括号所有可能的匹配形式。 解题思路 明显使用递归的方法求解,最初的想法是利用两个变量 $left$和 $right$ 记录剩余可使用的左右括号数,当 $left right$ 
        阅读全文
                
摘要:问题链接 "LeetCode 19. Remove Nth Node From End of List" 题目解析 给定链表,将倒数第n个元素删除后返回新的链表。 解题思路 这应该是一道简单题,不知道为什么是Medium。题目中已经给了提示,遍历一次!本题中由于不知道链表有多长,如果想知道的话需要遍
        阅读全文
                
摘要:问题链接 "LeetCode 18. 4Sum" 题目解析 给定n元素的数组,求出满足 $a+b+c+d = target$ 的所有元组。 解题思路 已经成为一个系列了,这道题是 "LeetCode 15. 3Sum" 的升级版,思路与其也是一模一样,外层再加一层循环。 先将数组排好序,便于检测重复
        阅读全文
                
摘要:问题链接 "LeetCode 17. Letter Combinations of a Phone Number" 题目解析 将数字串转化为字符串,其中每个数字对应相应的字母(手机按键对应),返回所有可能的字符串。 解题思路 简单暴力,直接循环迭代即可。首先建立对应数组 $NtoC$,遍历数字串,每
        阅读全文
                
摘要:问题链接 "LeetCode 16. 3Sum Closest" 题目解析 给定n个元素的数组和目标值,取三个元素使三数之和最接近目标值,求最接近目标值的三数之和。 解题思路 本题与 "LeetCode 15. 3Sum" ,思路一模一样,难度相差不大。 同样的,先将数组排序。固定最小数字,移动左右
        阅读全文
                
摘要:问题链接 "LeetCode 15. 3Sum" 题目解析 给定n个元素的数组,寻找符合 $a+b+c=0$ 的所有 {a, b, c}。 解题思路 如果对LeetCode的第一题 "Two Sum" 还有印象的话,会发现这道题很类似,不过题目要求的结果有明显区别,本题需要求出所有符合条件的结果。 
        阅读全文
                
摘要:问题链接 "LeetCode 4. Median of Two Sorted Arrays" 题目解析 给定两个有序的数组,找到两个数组的中位数。 解题思路 虽然两个数组都是有序的,要找到其中位数确实有点麻烦,因为两个数组不能简简单单合并起来。 采用最暴力的方法,开一个新向量,把两个数组都放进去,重
        阅读全文
                
摘要:问题链接 "LeetCode 67. Add Binary" 题目解析 将两个二进制字符串相加。 解题思路 注意两个问题,一是进位问题,二是长度问题。这里采用一种巧妙的方法,使用add变量记录进位情况,每次从两个字符串中取出数字进行计算,若不存在数字则视为0,这样就不用考虑长度问题了。 注意最后还需
        阅读全文
                
摘要:问题链接 "LeetCode 66. Plus One" 题目解析 给出一个非负向量,代表一个数字,最高位在头,最低位在尾,返回其加一之后的数字向量。 解题思路 由于返回值要求是一个数字向量,那就没有必要把向量转化成真的数字来计算。一般情况下,从向量尾开始判断: 如果为9,那么进位,变为0,观察上一
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号