LeetCode
力扣刷题笔记
一个不想写代码的程序员
这个作者很懒,什么都没留下…
展开
-
LeetCode172:阶乘后的0
题目 思路分析 对于这道题,很容易想到的一个思路就是,先求成n的阶乘,然后取模看看有多少个0。这样子做对n比较小的时候是可行的,但是当n足够大时,就会有溢出的风险。而且这样做时间复杂度是O(N),而题目要求的时间复杂度是O(logn),因此我们必须想想其他办法。 我们来看看下面几个数的阶乘: 3! = 3 * 2 * 1 = 6 5! = 5 * 4 * 3 * 2 * 1 = 120 10...原创 2020-02-14 11:28:59 · 132 阅读 · 0 评论 -
LeetCode125:验证回文串
题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例2: 输入: “race a car” 输出: false 思路分析 这道题可以用左右双指针法,思路如下 i 和 j分别指向字符串s的头和尾 ...原创 2020-02-12 15:27:07 · 135 阅读 · 0 评论 -
leetcode122:买卖股票的最佳时机(股票问题)
题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例1 输入: [1,2,3,4,5] 输出: 4 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能...原创 2020-02-12 12:39:00 · 131 阅读 · 0 评论 -
LeetCode119-杨辉三角II
LeetCode119题杨辉三角II 题目: 解题思路 对于杨辉三角的题目我们并不陌生。事实上,我们中学也学过,概念就不再这里赘述了。很容易想到的一个思路就是,求出前K-1行,再用杨辉三角的定义求出第K行。其实这个方法不是特别高效,我们来看看用组合数学是怎么求的。 我们可以知道,这些数字,其实都可以用组合数表示出来。 既然可以用数学公式表示出来,那我们写一个求组合数的函数然后一个个计算出来就行...原创 2020-02-11 17:07:27 · 150 阅读 · 0 评论