摘要: grep命令全称是 global regular expression print 阅读全文
posted @ 2020-08-06 12:33 AGkd 阅读(103) 评论(0) 推荐(0)
摘要: 今天又学习了拓扑排序。 首先图的问题邻接表要会表示。很多情况下用不了邻接矩阵。 方法就是bfs。 开局把入度为0的点放入队列。接着队列中的点进行bfs,相应减掉他们的相邻点的入度,如果过程中有邻居的入度被减到0,放入队列。 直至队列为空。 如果无拓扑排序即存在环的情况下,环上的点是无法达到入度为0的 阅读全文
posted @ 2020-08-04 09:41 AGkd 阅读(86) 评论(0) 推荐(0)
摘要: 今天学习了一下借助归并排序求一个数组的逆序对的方法。 感觉对我来说比树状数组的方法更友好吧,因为归并排序都还挺基础的。 主要就是根据左右两个子数组已经有序的性质,可以在左半子数组中每个元素被归并到结果的过程中根据右半子数组的状态来对结果进行更新(也就是找出逆序对)。因为整个排序过程保证了每个元素都能 阅读全文
posted @ 2020-08-02 22:27 AGkd 阅读(112) 评论(0) 推荐(0)
摘要: 主要需要注意的地方就是,数组其实是可以表达下标和值两个信息的,不要忘了,所以这个前k个位置上的最大值可以用单调递减的deque来获得, 这个需要的数据结构要保证 1.能O(1)取最大值然后 2.保证其中元素下标范围在k内, 所以维护一个存放下标的单调队列就可以解决。 单调队列可以满足1. 但是直接存 阅读全文
posted @ 2020-07-17 10:04 AGkd 阅读(109) 评论(0) 推荐(0)
摘要: 1.学到了java中的二维数组是在数组里面放数组,所以每一行的元素个数可以不一样。 2.注意看题,这题写完bfs我就以为成了,结果给的不一定是连通图,还得遍历完邻接表,得注意了。 阅读全文
posted @ 2020-07-16 09:08 AGkd 阅读(120) 评论(0) 推荐(0)
摘要: 首先java中也是有Pair类可以直接用的。在图或者相关问题中可以派上用场。 其次就是Dijkstra算法。这个算法我是看过,而且今天周赛这题(leetc5211)是挺容易想到该算法,但是我以前只看过没写过,导致我上午打开浏览器现学,结果算法学会了之后发现用邻接矩阵超内存限制,然后只好现学邻接表,学 阅读全文
posted @ 2020-07-12 18:13 AGkd 阅读(181) 评论(1) 推荐(0)
摘要: 学习了一下树状数组。 首先是lowbit方法,x&(-x)就可以求得x最低一个是1的位对应的数。 https://blog.csdn.net/bestsort/article/details/80796531 原理我看了一下这个博客,悟性不够,看完还没完全理解,先争取把这题给写出来吧。 阅读全文
posted @ 2020-07-11 11:17 AGkd 阅读(166) 评论(1) 推荐(0)
摘要: dp就是上一步状态向下一步的状态转换,少数状态可能不止一个,多数情况下都是很少的,这时候就可以用dp 阅读全文
posted @ 2020-07-11 08:49 AGkd 阅读(110) 评论(0) 推荐(0)
摘要: 今天又犯了一个典型的错误,就是想出初步方法觉得它不够好就没有去实现,正确的做法应该是先实现通过了之后再想优化,或者再看答案之类的。 这题的算法是一个挺笨的dp,主要的优化在数据结构上,用了字典树和哈希,但是题解里一个要自己写类,一个要重写哈希值方法,然后我看着太复杂就没学。 阅读全文
posted @ 2020-07-09 09:21 AGkd 阅读(60) 评论(0) 推荐(0)
摘要: 题是很简单,但是学到了一点就是,比如dfs这种有时候void的方法写的时候,如果想提前结束,一样可以直接return的。之前习惯性认为void方法不return了。有时候就傻傻地跑完。 阅读全文
posted @ 2020-07-08 11:32 AGkd 阅读(76) 评论(0) 推荐(0)