数据结构
布纸所云
这个作者很懒,什么都没留下…
展开
-
排序算法
MegeSort def sortIntegers(lst): if not lst: temp=[0]*len(lst) mergeSort(lst,0,len(lst),temp) # temp为在归并的过程中需要的额外空间 return lstdef mergeSort(lst,start,end,temp): if e...原创 2018-08-10 09:52:58 · 169 阅读 · 0 评论 -
买卖股票问题
Most consistent ways of dealing with the series of stock problemsT[i][k][0]: denotes the maximum profit on the i-th day with at most k transactions and with 0 stock in our hand after taking actions...原创 2018-09-03 19:29:55 · 463 阅读 · 0 评论 -
Leetcode题解-动态规划部分
Largest rectangle in HistogramMaximal rectangleUnique Binary Search TreesTriangleRange sum queryBest time to buy and sell stock IIIBest time to buy and sell stock IVDistinct SubsequenceLonge...原创 2018-09-03 18:31:50 · 257 阅读 · 0 评论 -
第十一章 串(上)
定义 串匹配蛮力匹配 def match(t,p): # t: 文本串; p: 模式串 m=len(p) n=len(t) i=0;j=0 while i<n and j<m: if t[i]==p[j]: i+=1; j+=1 else: ...原创 2018-08-30 13:47:53 · 235 阅读 · 0 评论 -
leetcode-BFS
Remove invalid ParenthesesWord LadderRemove invalid Parenthesesclass Solution(object): def removeInvalidParentheses(self, s): """ :type s: str :rtype: List[str...原创 2018-09-04 17:05:31 · 239 阅读 · 0 评论 -
广度优先搜索和深度优先搜索
宽度优先搜索什么时候用宽度优先搜索二叉树上的宽度优先搜索Binary Level Order Traversal二叉树序列化Graph valid treeClone graph深度优先搜索Number of islandsBFS——广度优先算法(Breadth First Search) BFS适用于解决:给定初始状态跟目标状态,要求从初始状态到目标...原创 2018-09-04 16:00:19 · 336 阅读 · 0 评论 -
第四章 栈与队列
典型应用场景进制转换def convert(n,a): res=[] while n: res.append(n%a) n=n//a while res: print (res.pop())括号匹配 class Solution: """ @param s: A...原创 2018-08-27 12:36:13 · 150 阅读 · 0 评论 -
第七章:二叉搜索树
定义:二叉排序树又叫二叉查找树或者二叉搜索树,它首先是一个二叉树,而且必须满足下面的条件:1)若左子树不空,则左子树上所有结点的值均小于它的根节点的值;2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值3)左、右子树也分别为二叉排序树处处的局部顺序性,全局的单调性。 中序遍历的歧义性: 查找 插入删除双分支的情况:...原创 2018-08-26 14:40:59 · 210 阅读 · 0 评论 -
算法题练习
找零给定数组arr,arr中所有的值都是正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求组成aim的最少货币数。(拓展,如果问有多少种不同的找零方法呢)举例: arr[5,2,3],aim=20。 4张5元可以组成20元,其他的找钱方案都要使用更多张的货币,所以返回4。 f[i]f[i]f[i]为最少用多少张组成iii数额...原创 2018-08-16 23:09:32 · 472 阅读 · 0 评论 -
剑指Offer
Search a 2D matrixSearch a 2D matrix 2替换空格从尾到头打印链表数组中的逆序对丑数丑数2参考资料Search a 2D matrix把它看成是sorted list matrixm∗n[i][j]=list[i∗n+j]list[i]=matrix[i//n][imatrixm∗n[i][j]=list[i∗n+j...原创 2018-08-18 18:42:32 · 337 阅读 · 0 评论 -
动态规划(五)——双序列型动态规划
Longest Common Subsequence class Solution: &quot;&quot;&quot; @param A: A string @param B: A string @return: The length of longest common subsequence of A and B &quot;&quot;&quot;原创 2018-08-12 20:36:02 · 1151 阅读 · 0 评论 -
动态规划(四)——区间型动态规划
最长回文序列 class Solution: """ @param s: the maximum length of s is 1000 @return: the longest palindromic subsequence's length """ def longestPalindromeSubseq(se...原创 2018-08-12 17:25:22 · 2955 阅读 · 0 评论 -
动态规划(三)
背包型动态规划BackPack背包问题要把总承重放入状态。 确定状态: f[i][m]f[i][m]f[i][m]:iii个物品能不能拼出重量mmm f[i][m]=f[i−1][m]orf[i−1][m−Ai−1]f[i][m]=f[i−1][m]orf[i−1][m−Ai−1]\begin{align*}f[i][m]= f[i-1][m] or f[i-1][m-A_{i...原创 2018-08-11 21:49:02 · 285 阅读 · 0 评论 -
动态规划(二)
最长序列型动态规划Longest Increasing Subsequencef(i)f(i)f(i):以nums[i]nums[i]nums[i]为结尾的最长上升子序列的长度 f(i)=maxj&amp;amp;amp;lt;i,nums[j]&amp;amp;amp;lt;nums[i]f(j)+1f(i)=maxj&amp;amp;amp;lt;i,nums[j]&amp;amp;amp;lt;nums[i]f(j)+1\beg原创 2018-08-11 12:30:30 · 285 阅读 · 0 评论 -
动态规划(一)
Coin Change转移方程: f(x)f(x)f(x):amount xxx需要的最少硬币数。 f(x)=min(f(x−1),f(x−2),f(x−5))+1f(x)=min(f(x−1),f(x−2),f(x−5))+1f(x)=min(f(x-1),f(x-2),f(x-5))+1 初值: f(0)=0f(0)=0f(0)=0def coinChange(coins,...原创 2018-08-10 15:54:09 · 661 阅读 · 0 评论 -
浙大数据结构-作业
第一章:基本概念最大子列和问题n=int(input())lst=list(map(int,input().split()))maxSum=0thisSum=0for i in range(n): thisSum+=lst[i] if thisSum<0: thisSum=0 if thisSum>maxSum: maxSum=thisSum...原创 2018-10-10 15:40:53 · 462 阅读 · 1 评论