![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
le_chateau
这个作者很懒,什么都没留下…
展开
-
https://leetcode.com/problems/search-in-rotated-sorted-array-ii/
https://leetcode.com/problems/search-in-rotated-sorted-array-ii/和上一题没有区别 把值改成TFclass Solution: # @param {integer[]} nums # @param {integer} target # @return {boolean} def search(se原创 2015-05-23 13:31:29 · 497 阅读 · 0 评论 -
http://oj.leetcode.com/problems/pascals-triangle-ii/
http://oj.leetcode.com/problems/pascals-triangle-ii/原创 2015-04-13 22:25:39 · 417 阅读 · 0 评论 -
https://leetcode.com/problems/reverse-integer/
https://leetcode.com/problems/reverse-integer/这道题没难度 只需要注意reverse之后溢出 其实像123450 reverse后变成054321 只要转换成long 前面的0是不需要在意的class Solution: # @param x, an integer # @return an integer de原创 2015-04-15 15:00:24 · 412 阅读 · 0 评论 -
https://leetcode.com/problems/longest-common-prefix/
https://leetcode.com/problems/longest-common-prefix/原创 2015-04-03 15:01:05 · 383 阅读 · 0 评论 -
https://leetcode.com/problems/powx-n/
https://leetcode.com/problems/powx-n/最开始没有认真考虑 没想过输入的正负 包括test cases里有很多内存不够 和超时 所以一边改一边写 写出了一个效率极低的解法class Solution: # @param x, a float # @param n, a integer # @return a float原创 2015-04-14 22:44:19 · 845 阅读 · 0 评论 -
https://leetcode.com/problems/text-justification/
https://leetcode.com/problems/text-justification/思路是这样的:1.先分行2.将这一行输出 分行的方法是 前i个字符串和i-1个空格的长度小于Max i自加如果除了这i个字符串没有别的了 就用last()方法输出(输出最后一行的方法)如果还有后续字符 就用 output()方法输出判断是否为最后一行用了needle变量原创 2015-05-07 22:19:51 · 352 阅读 · 0 评论 -
https://leetcode.com/problems/single-number-ii/
https://leetcode.com/problems/single-number-ii/和https://leetcode.com/problems/single-number/相同 range间隔改成3就行了class Solution: # @param {integer[]} nums # @return {integer} def sing原创 2015-05-14 11:49:05 · 539 阅读 · 0 评论 -
todo list
自动机原创 2015-04-22 12:23:21 · 248 阅读 · 0 评论 -
https://leetcode.com/problems/single-number/
https://leetcode.com/problems/single-number/很简单 排序之后 每隔一个range 如果这个值和下一个不相等 就是single 因为single可能是最后一个 给list append一个字符 最后一个也可以那样比较了class Solution: # @param {integer[]} nums # @return原创 2015-05-14 11:46:40 · 515 阅读 · 0 评论 -
https://leetcode.com/problems/trapping-rain-water/
https://leetcode.com/problems/trapping-rain-water/找最高点A 然后 分左右向左找次高B 中间点和min(A,B)的差就是V然后最高变B 再向左 右边也一样 第一次的方法很蠢 写了三个函数 分别找最高点 计算V 而且还把每次的高点存在list里 结果超时后来改了一下 一边找一边算一边加旧的def vol(height,原创 2015-05-13 23:19:20 · 362 阅读 · 0 评论 -
https://leetcode.com/problems/longest-valid-parentheses/
https://leetcode.com/problems/longest-valid-parentheses/最开始是每次配对成功(大雾就讲这一对赋值为0 最后看0串最长的一组的长度 发现超时 然后 换了方法 放了三个listalist最为栈 temp存放入栈元素的indexindexlist存放配对成功的元素的index一旦遇到配对成功的右括号 就把右括号的in原创 2015-05-13 23:24:36 · 519 阅读 · 0 评论 -
?????????https://leetcode.com/problems/largest-rectangle-in-histogram/
https://leetcode.com/problems/largest-rectangle-in-histogram/递归:(然而会超时 而且height很长时迭代深度太高)1.找最低点 计算最低点*总长的V2.分为左右两个list 分别再找最低 3.把所有的V放在list里 找最大的得出答案 def a(height,list): if height==[]:原创 2015-05-13 23:39:20 · 315 阅读 · 0 评论 -
https://leetcode.com/problems/valid-palindrome/
https://leetcode.com/problems/valid-palindrome/去掉非字母数字 统一小写 然后比较它和它的逆序是否相同我的方法没问题 但是超时 看discuss里面用了filter 我还不太会 class Solution: # @param {string} s # @return {boolean} def isPali原创 2015-05-13 22:30:46 · 496 阅读 · 0 评论 -
https://leetcode.com/problems/string-to-integer-atoi/
https://leetcode.com/problems/string-to-integer-atoi/先把特殊情况(空串,全空格,字母开头)return 0然后处理将头部的空格处理掉 (如果有)再判断str[0]是数字/字母/符号——符号 (以最后一个符号为准)初始化符号为+ sign=1——字母 return0最后处理成以数字为开头字符串 处理到连续的最后一个数字原创 2015-04-12 10:36:02 · 394 阅读 · 0 评论 -
https://leetcode.com/problems/simplify-path/
https://leetcode.com/problems/simplify-path/还是比较简单的1.以/为分隔符 将字符串分开 2.所有的 . 都变为‘’空串3.所有的 .. 都变为‘’空串 并且把..前第一个不为空的串设置为空 因为..表示上一级 4.删除所有空串 5.用/再把串连起来 (如果只有空串 那么意味着是根目录 )class Soluti原创 2015-05-07 22:55:04 · 387 阅读 · 0 评论 -
https://leetcode.com/problems/search-insert-position/
https://leetcode.com/problems/search-insert-position/依然二分法 如果能找到直接返回index如果找不到最后会逼近到s那么target就应该插入到e所在的位置 class Solution: # @param {integer[]} nums # @param {integer} target # @ret原创 2015-05-23 13:10:28 · 433 阅读 · 0 评论 -
https://leetcode.com/problems/search-for-a-range/
https://leetcode.com/problems/search-for-a-range/二分就能做 图方便用了list.index(target) list.count(target)如果index没有找到会抛出异常 用了tryclass Solution: # @param {integer[]} nums # @param {integer} tar原创 2015-05-23 13:01:28 · 337 阅读 · 0 评论 -
https://leetcode.com/problems/search-in-rotated-sorted-array/
https://leetcode.com/problems/search-in-rotated-sorted-array/1.寻找初始的index 也就是rotate的情况 2. 在顺序的列表里 二分查找 如果没有 返回-1 如果有 再减去startindex注意 减去startindex可能会出现负数的情况 在加一个len(list)再取len(list)余class Sol原创 2015-05-23 13:32:04 · 464 阅读 · 0 评论 -
https://leetcode.com/problems/sqrtx/
https://leetcode.com/problems/sqrtx/这道题 由于数字可能很大 先找大约的值 以10倍数递增 确定范围 然后二分法 如果刚好是完全平方根 就在while里 return (s+e)/2否则 最后会确定到s,e 其中e=s+1 而真正的平方根是在s和e之间的float 所以s**2这种情况下 直接返回s class Solution:原创 2015-05-23 13:05:28 · 424 阅读 · 0 评论 -
https://leetcode.com/problems/gas-station/
https://leetcode.com/problems/gas-station/这道题暴力的解释可以的 但是超时 def canCompleteCircuit(gas, cost): length=len(gas) for i in range(length): sgas=0 scos=0 for j in range(l原创 2015-05-23 11:12:37 · 421 阅读 · 0 评论 -
https://leetcode.com/problems/candy/
https://leetcode.com/problems/candy/这道题的想法是1.左右数字都大于等于它的 算作是凹型的 包括连续相同的几个数组中间的那几个 其中最左最右也可以这样算 不过因为只有一端有数 按一端算就行 将这些凹点赋值为1 其他为02. 从这样的凹点开始 到顶点 (大于等于两端且为0的点)都从凹点向上(左右)加一3.到顶点时 要取max原创 2015-05-23 10:56:16 · 518 阅读 · 0 评论 -
https://leetcode.com/problems/search-a-2d-matrix/
https://leetcode.com/problems/search-a-2d-matrix/先看是不是超出matrix范围 再看是哪行 最后行内for循环查找 (因为是排序好的 二分法也可以)class Solution: # @param {integer[][]} matrix # @param {integer} target # @return原创 2015-05-23 12:57:58 · 573 阅读 · 0 评论 -
leetcode分类
利用堆栈:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/http://oj.leetcode.com/problems/longest-valid-parentheses/ (也可以用一维数组,贪心)http://oj.leetcode.com/problems/valid-parentheses/转载 2015-04-12 10:36:35 · 568 阅读 · 0 评论 -
https://leetcode.com/problems/pascals-triangle/
https://leetcode.com/problems/pascals-triangle/初始化一个第n行有n个元素的list 非array[n][0]和array[n][n]的计算公式为array[i+1][j]=array[i][j-1]+array[i][j]————————————————————————————初始化最开始用的 for i in range(num原创 2015-04-13 11:24:15 · 396 阅读 · 0 评论 -
https://leetcode.com/problems/multiply-strings/
https://leetcode.com/problems/multiply-strings/因为数字很大 不能进行普通乘法 想到用分解乘法的步骤 长串和单位数字的乘法 就是 按位做乘法 积+进位%10=得数 积+进位/10=进位最后在单独把最后一次的进位放在最前面singlemul()就做了这件事——————————————————然后得到每一次的原创 2015-05-07 22:40:03 · 365 阅读 · 0 评论 -
https://leetcode.com/problems/implement-strstr/
https://leetcode.com/problems/implement-strstr/很简单 先找needle串的头和haystack相同的位置 如果连头都不一样就肯定不是 相同再比较后面的每一位 有一些特殊情况 长度needle或者haystack可能是空串 单独处理 class Solution: # @param {string} haystack原创 2015-05-07 22:15:02 · 370 阅读 · 0 评论 -
☆☆☆https://leetcode.com/problems/3sum/
https://leetcode.com/problems/3sum/这道题由于之前写过two sum 可以先固定一个 另外两个用类似twosum的方法 但是niddle就不需要了 因为这道题允许有多个解我没有写另一个函数 直接把代码都写在一起 不过效率很低 class Solution: # @return a list of lists of length 3, [[v原创 2015-05-03 11:26:10 · 845 阅读 · 0 评论 -
https://leetcode.com/problems/length-of-last-word/
https://leetcode.com/problems/length-of-last-word/简单 用string.split(' ')有可能有连续空格 因此从后往前找第一个非空值计算长度class Solution: # @param {string} s # @return {integer} def lengthOfLastWord(self, s)原创 2015-05-13 22:28:11 · 463 阅读 · 0 评论 -
https://leetcode.com/problems/longest-palindromic-substring/
https://leetcode.com/problems/longest-palindromic-substring/这道题我分了两类 单字符中心和双字符中心 单字符的 遍历每一个字符 找以它为中心左右两个是否相等 把左边的起点的index和总长度记住 双字符 寻找两个连续的字符作为中心 方法相同 其中单中心的 length=min(i,len(s)-i-1) 就是看中心离哪原创 2015-05-13 22:24:14 · 575 阅读 · 0 评论 -
https://leetcode.com/problems/spiral-matrix/
https://leetcode.com/problems/spiral-matrix/单独写了个剥离最外层的函数 如果是一般情况就顺时针输出数字 如果只有两层或者一层 单独处理 每剥离完一圈 长 宽均减一 很简单 注意边界class Solution: # @param matrix, a list of lists of integers # @return a原创 2015-04-27 11:22:20 · 386 阅读 · 0 评论 -
https://leetcode.com/problems/first-missing-positive/
https://leetcode.com/problems/first-missing-positive/题目很好懂 我的做法是1.删除所有非正数 2.去重3.排序4.看下标和值不相差1 如果都相同 那就少list里的下一个一定有更好的方法 class Solution: # @param {integer[]} nums # @return {in原创 2015-04-26 21:58:41 · 340 阅读 · 0 评论 -
http://oj.leetcode.com/problems/remove-element/
http://oj.leetcode.com/problems/remove-element/最开始没看懂题目 就只返回了长度而已 实际上题目要求 去掉elem值 然后将剩余的数 放在原数组的前N个位置 所以想要新创建一个数组是不可行的 前后各一个指针 当list[n]为elem时 就交换这个elem最后一个不是elem的数最后再计算长度 想过计算交换次数 然而list尾部原创 2015-04-26 21:38:37 · 357 阅读 · 0 评论 -
https://leetcode.com/problems/merge-sorted-array/
https://leetcode.com/problems/merge-sorted-array/这道题有一个很奇怪的问题 看了discuss之后明白了 A B数组的长度其实是不确定的 所以len(A)是不能用的这也是为什么会给出m,n作为长度 大家的解释是 A的实际长度长于m 这是为了最后mergeB留的空间 但是有一个testcase input[],[1]out原创 2015-04-26 21:55:19 · 558 阅读 · 0 评论 -
https://leetcode.com/problems/permutation-sequence/
https://leetcode.com/problems/permutation-sequence/这道题我是这样想的 按从小到大排列 如果n个数 最高位就有n种 每种开头还有(n-1)!种 那么k包含x个(n-1)! 就说明首尾就是[1,n]里第x+1大的 import mathclass Solution: # @param n, an integer原创 2015-04-17 12:37:53 · 343 阅读 · 0 评论 -
https://leetcode.com/problems/plus-one/
https://leetcode.com/problems/plus-one/最难的在于我看不懂题 简直哭了 水神翻译之后大概明白用数组表示一个数 将这个数+1 在存成数组 例如 9327存成[9,3,2,7]很简单 list→str→long→加一→str→list(使用append或者list相加都行)代码如下 class Solution: # @pa原创 2015-04-15 16:03:57 · 534 阅读 · 0 评论 -
https://leetcode.com/problems/palindrome-number/
https://leetcode.com/problems/palindrome-number/不许用额外空间 否则可以int-str-list进行比较用了一个特别恶心的数字加法 取后一半的数字 加它所在位和对应位 最后看是不是每个数字都是9虽然accept 但是菊苣说用了额外空间 然后给了一行别的代码 一会儿再想想 class Solution: # @par原创 2015-04-16 17:20:51 · 516 阅读 · 0 评论 -
https://leetcode.com/problems/unique-paths/
https://leetcode.com/problems/unique-paths/不知道咋说 小学排列组合的奥术题 一瞬间不知道怎么计算机解了 不知道脑子里的排列组合应该算思考还是算作弊import mathclass Solution: # @param m, an integer # @param n, an integer # @return原创 2015-04-15 16:22:23 · 321 阅读 · 0 评论 -
http://oj.leetcode.com/problems/valid-number/
http://oj.leetcode.com/problems/valid-number/ 因为没有好的办法 写了100多行 首先判断s里有没有 . 和 e分四种 每种单独处理 class Solution: # @param s, a string # @return a boolean def containOther(self,s):# if con原创 2015-04-20 20:43:57 · 424 阅读 · 0 评论 -
https://leetcode.com/problems/add-two-numbers/
https://leetcode.com/problems/add-two-numbers/最开始不明白# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = None原创 2015-04-22 19:04:15 · 403 阅读 · 0 评论 -
https://leetcode.com/problems/add-binary/
https://leetcode.com/problems/add-binary/二进制加法 把二进制转换成10进制 相加再转 有点作弊class Solution: # @param a, a string # @param b, a string # @return a string def addBinary(self, a, b):原创 2015-04-22 12:49:29 · 845 阅读 · 0 评论