Leetcode刷题笔记
Yexiaomola
https://github.com/yexiaomo
展开
-
Leetcode - 14. 最长公共前缀
Github地址文章目录思路思路1: 横向扫描法思路2: 利用Python中zip函数和set思路3: 利用ASCII码编写思考与学习思路分析了一下题目思路1: 横向扫描法①把第一个字符串暂时看做最长公共前缀②在第二个字符串看是否能找到当前最长公共前缀③如果不能找到,将最长公共前缀去掉最后一个,再进行②,④直至匹配成功⑤再循环后面的每个元素,总能找到最长公共前缀,如果中间最长公...原创 2019-12-06 09:51:32 · 178 阅读 · 0 评论 -
Leetcode - 70. 爬楼梯
Github地址文章目录思路编写思考与学习思路分析了一下题目显然动态规划问题当n>2时, 当你想要走到第n个台阶时,你需要先走到第n-1个或者第n-2个台阶当你想要走到第n-1个台阶时,你需要先走到第n-2个或者第n-3个台阶当你想要走到第n-2个台阶时,你需要先走到第n-3个或者第n-4个台阶… 依次类推分解至第1,2台阶时,就是分析的 底层问题分析是从上至下,...原创 2019-10-27 11:10:02 · 191 阅读 · 0 评论 -
Leetcode - 46. 全排列
Github地址文章目录思路编写思考与学习思路分析题目数学上的组合问题, 感觉题很简单,对于我没接触过算法的人,无从下手 _发现这道题的标签是回溯, 然后查找了一些关于回溯问题的资料初步对这道题有了思路, 就是个树形结构, 遍历每一条分支结构利用递归求解(菜鸡的我只知道递归就是自己调用自己,要确定好递归结束条件)思路:①在纸上画出树形结构②确定递归参数每次的参数都是当前字符...原创 2019-10-21 23:08:43 · 113 阅读 · 0 评论 -
Leetcode - 33. 搜索旋转排序数组
Github地址文章目录思路编写思考与学习思路分析了一下题目,①发现数组两端值是连续的②最大值,最小值在"中间"且相邻,③对目标值,感觉本身的螺旋数组已经形成相对意义的折半查找 _思路:对目标值与数组第一个进行判断大继续进行,小则从末尾倒着比较注意临界点, 目标值比最大值还大, 比最小值还小编写class Solution: def search(self, n...原创 2019-10-19 11:49:36 · 108 阅读 · 0 评论 -
Leetcode - 20. 有效的括号
Github地址文章目录思路编写思考与学习思路第一眼看到括号匹配, 就想到了用栈来实现, 可能是考研时王道书上也是举的这样的例子遇见左括号, 进栈,遇见右括号, 出栈与之相比较,匹配, 循环继续进行不匹配, 直接GG特殊值判断, 空字符返回值判断, 栈是否为空编写class Solution: def isValid(self, s: str) -> ...原创 2019-10-15 13:49:21 · 110 阅读 · 0 评论 -
Leetcode - 9. 回文数
Github地址文章目录思路编写思考与学习思路因为要判断整数是否为回文, 则去除正负号字符串判断是否为回文字符串编写class Solution: def isPalindrome(self, x: int) -> bool: if(x == None or x<0): return False x = str(x) ...原创 2019-10-10 09:02:48 · 118 阅读 · 0 评论 -
Leetcode 8. 字符串转换整数 (atoi)
Github文章目录思路思路首先去除空白字符 str.split()在返回的数组中,查找到第一个为整数的元素原创 2019-10-10 08:34:26 · 166 阅读 · 0 评论 -
Leetcode - 4. 寻找两个有序数组的中位数
Github地址文章目录思路编写思考与学习思路条件①两个数组都是有序②时间复杂度要求O(log(m+n))在一个有序数组中计算中位数很方便,但这是两个, 虽然是两个,但是有序,所以两个数组看成一个就行老规矩,加上输入值判断考虑有的数组为空,也就是len(nums) = 0最后函数返回值为float编写思考与学习...原创 2019-10-06 11:13:14 · 113 阅读 · 0 评论 -
Leetcode - 2. 两数相加
Github地址思路因为整数是按照逆序存放在链表中,所以直接从头结点就可以开始相加老规矩,加上输入值判断两个数相加有可能产生进位, 所以下一个结点相加时需要考虑进位的1当一个数加完,另外一个还有节点, 只加这一个结点当最后两个结点都加完,但是进位还在考虑完毕动手按照上面的思路,按照正常逻辑写出如下代码# Definition for singly-linked list....原创 2019-10-05 22:15:42 · 184 阅读 · 0 评论 -
Leetcode - 7.整数翻转
题目地址不知道什么叫整数溢出,看了别人的博客才知道,就是运算过程中超出了实际32位有符号整数位最大的值和最小值然后就复制了别人的这样一行代码if( rlt>0x7fffffff || rlt<(signed int)0x80000000) return 0;到了 1534236469 这个数就不行。debug发现原来是编译器在计算时发现溢出了自动重新设置了个数发现这个数...原创 2018-12-30 20:06:28 · 147 阅读 · 0 评论 -
算法复杂度实验
O(n)每当数据量增长一倍,时间增加一倍。证明略证明如下:2n / n = 2O(logn)每当数据量增长一倍,时间基本不增加。(滑稽)证明如下:log2n\log{2n}log2n / logn\log{n}logn = logn2\log_n{2}logn2 + 1并且从上面可以看出,$\log_n{2}$接近于0。所以log(n)级别的算法是非常优秀的算法。O(n...原创 2019-01-22 17:11:52 · 2490 阅读 · 0 评论 -
一个关于字符串数组的时间复杂度问题
问题描述:有一个字符串数组,将数组中的每一个字符串按照字母序排序后,再将整个字符串数组按照字典序排序。整个操作的时间复杂度为多少?错误的解答设数组长度为n,每个字符串按字母序排序为O(nlogn)一共为O(nnlogn),再将整个数组按字典序排序O(nlogn)。得出总的时间复杂度为O(nnlogn)+O(nlogn)=O(n^2logn)没遇到此类问题的我感觉上面的解答没毛病啊,...原创 2019-01-09 17:24:24 · 936 阅读 · 0 评论