0%

安装zsh套件

1
2
sudo apt-get update
sudo apt install zsh

把zsh设置成默认,也就是替换bash:

1
chsh –s $(which zsh)

安装 oh my zsh 框架

注意,前提是git的环境已经配置完毕

1
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
阅读全文 »

哈希表的定义

哈希表(Hash table,也叫散列表),是根据关键码值(Key, value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度
简单来描述就是:
记录的存储位置=H(关键字)
这里的对应关系H称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hash table)。
哈希函数的定义:
把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。理想的哈希函数对于不同的输入应该产生不同的结构,同时散列结果应当具有同一性(输出值尽量均匀)和雪崩效应(微小的输入值变化使得输出值发生巨大的变化)。

阅读全文 »

对于笔试过程中的不太清晰的部分知识点做一下整理

C++继承:私有,保护,公有

private, protected, public的访问范围:

private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问
protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问
public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问
注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数

阅读全文 »

链表

链表的定义及优缺点:

来自维基百科

定义

链表(Linked list)是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。

链表作为一种基础的数据结构可以用来生成其它类型的数据结构。链表通常由一连串节点组成,每个节点包含任意的实例数据(data fields)和一或两个用来指向上一个或下一个节点的位置的链接(”links”)。

阅读全文 »

算法相关的Leetcode题解见:
CS-Notes/notes/Leetcode 题解 - 目录.md

1. 贪心思想

在对问题求解时,总是做出在当前看来是最好的选择。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
参考例题:452. 用最少数量的箭引爆气球

阅读全文 »

进程

一般来说Linux系统中的进程具备下列进程四要素

(1)有一段程序供其执行,就好像一场戏有个剧本一样。不一定是进程所专有,可以与其他进程共用。

(2)有起码的”私有财产“,这就是进程专用的系统堆栈空间。

(3)有“户口”,这就是在内核中的一个task_struct数据结构,也称为“进程控制块(PCB)”,有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。

(4)有独立的存储空间,意味着有专有的用户空间;也意味着除前述的系统空间堆栈外还有其专用的用户空间堆栈

阅读全文 »

图的定义

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合,E 是图 G 中边的集合。

注意:

  • 线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)
  • 线性表中可以没有数据元素,称为空表。树中可以没有结点,叫做空树。在图结构中,不允许没有顶点。在定义中,若 V 是顶点的集合,则强调了顶点集合 V 有穷非空(关于点集是否为空有争议)。
阅读全文 »

二叉树的定义

二叉树(Binary Tree)是 n(n >= 0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左二叉树和右二叉树组成。

注:二叉树不是树的特例,因为二叉树的孩子有左右之分,树是图的特例,二叉树可以为空,图(包括树)不能为空。(不同参考书籍的描述不一,有待考量)

阅读全文 »

C++11 标准新特性:Defaulted 和 Deleted 函数

1、Defaulted函数

C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象。

如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。 如:

阅读全文 »