- 博客(18)
- 收藏
- 关注
原创 Leetcode 数组之和系列
Leetcode 1. 两数之和Leetcode 15. 三数之和Leetcode 18. 四数之和Leetcode 1. 两数之和方法1:排序+查找方法2:哈希法class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: sum = 0 m = {} for i in range(len(nums)): sum .
2020-07-10 15:13:38 212
原创 Leetcode 数组最长最大子序列系列总结
128. 最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。思路:动态规划,哈希表class Solution(object): def longestConsecutive(self, nums): hash_dict = dict() max_length = 0 for num in nums: if num not in hash_dict:
2020-07-10 10:02:05 903
原创 Leetcode中前缀和系列问题
Leetcode 1. 两数之和Leetcode 560. 和为K的子数组Leetcode 1248. 统计「优美子数组」Leetcode 454. 四数相加 II
2020-06-29 11:07:27 310
原创 Leetcode 位运算系列
Leetcode题目中有一类题目涉及到位运算。下面给大家总结一下这一类题目的做法。1. 异或位运算异或运算想必大家一定有所耳闻。两个数字异或:a^b运算方式是将 a 和 b 的二进制每一位进行运算,如果同一位的数字相同则为 0,不同则为 1。小性质:任何数和本身异或结果为 0,任何数和 0 异或结果为其本身Leetcode中相关题目:Leetcode 136. 只出现一次的数字Leetcode 137. 只出现一次的数字 IILeetcode 260. 只出现一次的数字 III (面试
2020-06-22 11:21:53 387
原创 Leetcode 数组原地哈希问题大总结
同类型问题Leetcode中一类问题是数组范围(0,N)找寻重复数字或者消失的数字面试题03. 数组中重复的数字Leetcode 41. 缺失的第一个正数Leetcode 442. 数组中重复的数据Leetcode 448. e找到所有数组中消失的数字数组哈希法中心思想由于数组元素的值都在指定的范围内,这个范围恰恰好与数组的下标可以一一对应;因此看到数值,就可以知道它排序后应该放在什么位置即大小为 i 的数字排序后应该在下标为 i 的位置上,这就像是人为编写了哈希函数而找到重复的数
2020-06-19 12:13:05 932
原创 Leetcode 剪绳子类问题
同类型题目:Leetcode 面试题14- I. 剪绳子Leetcode 面试题14- II. 剪绳子 IILeetcode 343. 整数拆分题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?方法1:动态规划拿到题目的想法就是动态规划状态方程:#利用两个循环返回找最大值,值得注意的是 max(dp[i
2020-06-17 17:39:28 647
原创 leetcode 股票交易问题动态规划一网打尽
**通用动态规划状态分解法方法解决股票交易最大利润问题1. 算法框架状态的三个维度:天数:[0, 1,…,N - 1]交易次数(一次交易对应买+卖两个操作): [0, 1,…,k]手上是否还持有股票:[0,1]通用要求解答案:max(dp[N ][_][0] for _ in range(k + 1))动作集合:买入(交易次数+1),卖出,无操作状态转移方程:注:交易次数按照一次买入时增加,因为买入和卖出是成对出现,要先买才能卖dp[i][j][0] = max(dp[i - 1][
2020-06-17 16:37:22 211
原创 Leetcode随机抽样类题目
蓄水池抽样是个很有趣的问题,这个问题的来源是关于等概率抽样的一种思考,问题是,如何能在不知道总体对象数量(或者数量巨大)的情况下抽取k个对象,使得每个对象被抽取到的概率相同。解决问题的思路:考虑最终一定要抽取到k个对象,所以先任意抽出k个,然后对剩下的对象分别以某种概率概率,使得最终每个对象被抽到的概率相同。(根据分步分类计数原理即可证明)原理:蓄水池抽样原理假设需要采样的数量为kkk。首先...
2020-04-09 11:45:27 286
原创 Leetcode 22. 括号生成 python3
class Solution: def generateParenthesis(self, n: int) -> List[str]: """ :type n: int :rtype: List[str] """ res = [] # 递归函数 def dfs(left,right,tmp): ...
2020-04-02 11:56:48 177
原创 Leetcode 1375. 灯泡开关 III python3
时间复杂度:O(N)O(N)O(N)时间复杂度:O(1)O(1)O(1)class Solution: def numTimesAllBlue(self, light: [int]) -> int: if light == []: return 0 # 发现没那么复杂 length = len(light)...
2020-04-02 11:53:10 169
原创 707.设计链表 python
单链表创建class Node(object): def __init__(self, x): self.val = x self.next = Noneclass MyLinkedList: def __init__(self): """ Initialize your data structure her...
2019-10-30 14:57:53 153
原创 python 递归快速排序
递归快速排序def merge(num): if len(num)==1 or len(num)==0: return num tmp=num[0] low=0 high=len(num)-1 while low!=high: while num[high]>=tmp and low < high: ...
2019-09-18 17:07:13 229
原创 归并排序
归并排序分治+合并nums = [2,8,5,1,4,5,3,7]def merge(left,right): #合并 i=0 j=0 arr=[] while i<len(left) and j<len(right): if left[i]<right[j]: arr.append(left...
2019-09-12 18:01:26 203
原创 python 堆
堆排序(python)def Heapify(heap,HeapSize,root):#在堆中做结构调整使得父节点的值大于子节点,已经保证所有子树都是堆,只有根不符合堆的定义 if root>=HeapSize: return c1=2*root c2=2*root+1 maxi=root if c1<HeapSize and...
2019-09-10 16:20:10 166
原创 Leetcode 20. 有效的括号(C语言栈)
题目解析:给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 4:输入:...
2018-07-11 12:35:13 1778
原创 Leetccode 15. 三数之和(C语言快速排序+查找)
题目解析:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。第一个想法肯定是三层循环嵌套,但是题目中的不包含重复组让我们的判断变得异常困难,所以首先进行排序排序后遇到与前一个相同的数字就跳过,嵌套的第二层循环记录剩下的首尾位置,首尾位置分别...
2018-07-11 09:44:47 1754
原创 Leetccode 8. 字符串转整数 (C语言)
题目解析:判断第一个不为空的是数字还是字母还是正负号还是其他字符若为数字,则将上一步记录的数值乘10加上本字符,向下查找下一个字符若为字母或其他字符则 return 0若为正负号则记录符号,向下查找下一个字符,跳入2或3遍历完所有字符若数值溢出则根据正负号分别返回相应值遇到的问题:上述思路是我的第二个思路,其实第一个思路是想不用一步记录一次数值,利用指针记录符合条件的符号再...
2018-07-11 09:33:14 306
原创 Leetcode 3.无重复字符的最长子串(C语言队列)
题目:LeetCode:Longest Substring Without Repeating Characters给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定"abcabcbb",没有重复字符的最长子串是"abc" ,那么长度就是3。 给定"bbbbb" ,最长的子串就是 "b" ,长度是1。 给定 "pwwkew",最长子串是"wke",长度是3。请注意答案必须是一个
2018-07-08 20:04:33 2579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人