03 2019 档案
摘要:首先我们根据我随意设定的一个路径建立一个字典 BFS需要用到队列我直接使用的Python的双端队列,广度优先搜索就是一层一层的搜索每搜索一层就把下一层加到队列里面。 DFS就是把队列改成栈就行了,深度优先搜索就是先一条路走到黑,发现走不了再退回来换条路走。代码就是把队列换成栈。 现在我们给每条路径加
阅读全文
摘要:分组背包就是把N件商品分成K组,但是每个组里的商品要么一件都不拿要么最多只能拿走一件,问你如何选择才能取得的价值最大。 首先这是一个动态规划问题,动态规划问题就要找到递归基,这个的递归基和01背包问题的差不多。 这个k是第K组v指的是当前背包的容积,这个递归基的意思就是我们在第K组要么一件都不要那样
阅读全文
摘要:首先是 01 背包问题: 假设有很多商品每件商品都会占一定体积 v[x, y, z] (x,y,z是指某种商品占有的体积) 同时每件商品价值 w[x, y ,z] (对应于v里的商品所对应的价值)也不完全一样,我们有两种选择我拿走或者不拿走,但是我的背包容量有限不能把所有商品全拿走,怎么办才能使得我
阅读全文
摘要:昨天做的字节跳动那一题比较简单,直接采用贪心算法直接就能求解,但是我最近看到一篇介绍动态规划的博文,发现这种题目并没有那么简单,只是刚好那一题用贪心算法直接求解即可。 题目:某国有四种货币面值 1元 面值4 元 面值 8 元 面值 16这四种。小明有W元问如果把W元换成这几种货币,最少需要多少张?
阅读全文
摘要:1 class Node(object): 2 3 def __init__(self, value=None): 4 self.value = value 5 self.next, self.prev = None, None 6 7 class Circular_Double_Linked_List(object): 8 ...
阅读全文
摘要:#构造一个节点的类 1 class Node(object): 2 def __init__(self, value=None): 3 self.value = value 4 self.next = None 5 6 class LinkedList(object): 7 8 def __init__(s...
阅读全文
摘要:首先我们要先自己建立一个二叉树,我们先根据我自己随便写的二叉树建立一个列表保存二叉树的各个节点的信息,当然你也可以直接写个程序自己建立。 然后根据建的列表建立一个二叉树 接下来是几种遍历 先序遍历:即先遍历根节点然后遍历左节点接着是右节点 第一种:采用递归 我个人比较倾向于返回对应节点而不是直接返回
阅读全文
摘要:leetcode: github: 第一种采用队列和树的层次遍历 使用一个判断值每次遍历一层之后把该值变成原先的相反数 时间是:28ms 第二种:是使用列表和层序遍历。然后再把列表中每层奇数次反转。
阅读全文
摘要:第一种 使用栈配合哈希表 主要过程:遍历nums2,首先如果栈为空则直接入栈,如果不为空则判断以下该值与栈首的值哪个大如果栈首的大则继续入栈,如果栈首的小则把两个值加到哈希表中。 接下来把所有的值都判断一遍以后,遍历nums1如果值在哈希表中则输出这个值,如果不在则输出-1。 第二种:while循环
阅读全文
摘要:对于这一题我使用了最大堆,快速排序,归并排序几种解法来做这一题,速度最快的是归并排序 使用定值的最小堆每次更新数组最后剩下前k个最大元素,而且堆顶就是我们要的第K个元素。 堆排序: 快速排序: 时间是5052ms慢的吓人☺ 归并排序: 这个也是我自己实现的归并排序时间是 88ms 最后用Python
阅读全文
摘要:字典树的作用:它是利用单词的公共前缀来节约储存空间,因为单词的前缀相同就会公用前缀的节点。比如搜索提示就可以根据输入的前缀来提示可以构成的单词。 前缀树特点: ①:单词前缀相同共用节点。 ②:每个节点只存一个字母 ③:根节点不包含字母 ④:组成的单词是根据所走过的路径所决定的 ⑤:因为我是用Pyth
阅读全文

浙公网安备 33010602011771号