本文旨在给出二分图(bipartite graph)判断与最大匹配的标准算法模板,以供自己日后使用。
线段树模板
本文字数: 1.6k 阅读时长 ≈ 1 分钟
本文主要来介绍一种竞赛题中常见的数据结构:线段树(Segment
Tree)。线段树可以在O(logN)
的时间复杂度内实现单点修改/区间修改,区间查询(区间求和,求区间最大值,求区间最小值)等操作。
C++ Rule of Five
本文字数: 3.3k 阅读时长 ≈ 3 分钟
这篇文章的起因是我最近写Leetcode上的设计类题目比较多,因此对C++的
The Rule of Five
产生了兴趣,想以此来确定一个通用的代码模板,规范自己今后的所有自定义Class的书写。
C++中的default关键字辨析
本文字数: 1.4k 阅读时长 ≈ 1 分钟
本文旨在说清楚一个问题,就是当我们用C++写下default
时,到底发生了什么。
C语言中的运算符优先级辨析
本文字数: 1.9k 阅读时长 ≈ 2 分钟
最近使用C语言写MIT 6.S081课程的作业,发现自己对于C语言中的类似*
,&
,[]
,->
符号的运算优先级和结合顺序问题理解并不清楚,这篇文章就是要彻底的理解这些个符号的运算优先级和代表的意义,保证以后凡是看到这样的符号,就都不会心里发慌。
二分搜索的模板和细节
本文字数: 2.1k 阅读时长 ≈ 2 分钟
最近做Leetcode题目总是遇到二分搜索的问题,本来觉得之前自己已经把这方面搞的很明白了,但是写起来还是各种别扭不痛快。问题主要集中于循环条件控制:是while(left <= right)
还是while(left < right)
,左右边界的缩小:是left = mid + 1
还是left = mid
,中值的计算问题:是mid = left + (right - left) / 2
还是mid = left + (right - left + 1) / 2
。今天的这篇文章就想把这些问题都说清楚。
详解单例模式
本文字数: 2.5k 阅读时长 ≈ 2 分钟
最近由于课程作业的缘故,使用Scala语言的次数较多。在Scala中,类型还是挺丰富的,其中有一种类型称为Obejct
,可以说对应着Java中的单例模式,今天正好来详细说一下自己一直没有搞清楚的这个东西,同时也是面试中经常出现的一个知识点。
C++ const关键字辨析
最近学习C/C++语言,又一次看到了const
关键字。之前本科的时候这个地方就一直没有搞的很明白,这次我想专门写篇文章来帮助自己记忆。以下的内容参考《C++ Primer》(第五版)
对接下来一段时间自我学习的路线思考
入学EPFL也有一学期的时间了,自己也算是逐渐适应了国外的学习生活。说实话,对于在瑞士的CS学习,我是不太满意的。当然这也跟自己初来乍到没有确定好未来的路线规划有很大的关系。现在,至少这个问题已经逐步清晰起来了。下面我就想主要地回顾一下自己的心路历程,同时为接下来一段时间的自我学习指明道路。
学习计算机科学的方法论
计算机科学(Computer Science,以下简称CS)包罗万象,博大精深。由于是一门操作性极强且又极为复杂的学科,因此对新手并不友好。我个人从大学四年的专业学习上,只能说是积累了一点经验,打下了一点基础。我就在此谈一谈个人对于学习计算机科学的方法论,为接下来自己的自学提高指明一个方向。