![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
ngc1277
这个作者很懒,什么都没留下…
展开
-
【LeetCode刷题】70. 爬楼梯
假设你正在爬楼梯,需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶,你有多少种不同的方法可以爬到楼顶呢?暴力法(递归):def climbStairs(n): return climb_Stairs(0, n)def climb_Stairs(i, n): if i > n: return 0 if i == n: ...原创 2020-02-06 14:10:38 · 153 阅读 · 0 评论 -
【LeetCode刷题】5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-subs...原创 2020-02-06 13:56:40 · 92 阅读 · 0 评论 -
【LeetCode刷题】42.接雨水
给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6来源:力扣(LeetCode)...原创 2020-02-06 11:09:38 · 218 阅读 · 0 评论 -
【LeetCode刷题】88. 合并两个有序数组
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。方法一:双指针法,遍历两数组,从前往后逐个比较添加,需要辅助空间;时间复杂度O...原创 2019-12-06 18:07:53 · 117 阅读 · 0 评论 -
【LeetCode刷题】买卖股票的最佳时机
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。方法一:暴力法两个for循环,但LeetCode上超时。class Solution(object): def maxProfit(self, prices): ...原创 2019-12-06 16:30:05 · 140 阅读 · 0 评论 -
【LeetCode刷题】排序链表
在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。解题思想:归并排序递归:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = None...原创 2019-11-30 15:40:59 · 89 阅读 · 0 评论 -
【LeetCode刷题】整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ number = 0 y = abs(x) ...原创 2019-11-30 13:22:36 · 154 阅读 · 0 评论 -
python 取模和/除法的注意事项
python的取模是根据向下取整法的,而c/c++/java是基于向零取整的。python3中:/是精确除法,//是向下取整除法;print('123 / 10 = ', 123 / 10)print('123 // 10 = ', 123 // 10)对于负数还有需要注意的地方:Python3中,在c语言中,-53除以10=-5%是求模,...原创 2019-11-30 13:09:53 · 346 阅读 · 0 评论 -
【LeetCode刷题】合并K个排序链表
合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6# Definition for singly-linked list.# class ListNode(...原创 2019-11-27 10:17:12 · 73 阅读 · 0 评论 -
【LeetCode刷题】每日温度
根据每日气温列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用0来代替。class Solution: def dailyTemperatures(self, T): res, length, i = [0] * len(T), len(T), len(T) - 2 ...原创 2019-11-24 16:28:25 · 191 阅读 · 0 评论 -
【LeetCode刷题】字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a或2[...原创 2019-11-24 15:39:30 · 475 阅读 · 0 评论 -
【LeetCode刷题】二叉树的中序遍历
给定一个二叉树,返回它的中序遍历。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass S...原创 2019-11-24 14:11:58 · 183 阅读 · 0 评论 -
【LeetCode刷题】数组中的第K个最大元素
题目在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。code随机选择一个枢轴。 使用划分算法将枢轴放在数组中的合适位置 pos。将小于枢轴的元素移到左边,大于等于枢轴的元素移到右边。 比较 pos 和 N - k 以决定在哪边继续递归处理。在这里,由于知道要找的第N - k小的元素在哪部分中,我们不需...原创 2019-11-24 13:40:11 · 381 阅读 · 0 评论 -
【LeetCode刷题】栈——最小栈
题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。pop()-- 删除栈顶的元素。top()-- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pu...原创 2019-11-24 12:15:55 · 157 阅读 · 1 评论 -
【LeetCode刷题】栈stack——有效的括号
题目给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例...原创 2019-11-24 09:27:35 · 189 阅读 · 0 评论