给广大码农分享福利:一个业界良心的github仓库,中文计算机资料
我今天查资料时无意发现的,https://github.com/CyC2018/CS-Notes
这个仓库包含了下列几个维度的计算机学习资料:
深受国内程序员喜爱,已经有超过3万多star了。
1. 算法
(1) 剑指 Offer 题解:目录根据原书第二版进行编排,代码和原书有所不同,尽量比原书更简洁。
这里面包含了非常多的程序员找工作面试和笔试需要准备的知识点:
1. 前言
2. 实现 Singleton
3. 数组中重复的数字
4. 二维数组中的查找
5. 替换空格
6. 从尾到头打印链表
7. 重建二叉树
8. 二叉树的下一个结点
9. 用两个栈实现队列
10.1 斐波那契数列
10.2 跳台阶
10.3 矩形覆盖
10.4 变态跳台阶
11. 旋转数组的最小数字
12. 矩阵中的路径
13. 机器人的运动范围
14. 剪绳子
15. 二进制中 1 的个数
16. 数值的整数次方
17. 打印从 1 到最大的 n 位数
18.1 在 O(1) 时间内删除链表节点
18.2 删除链表中重复的结点
19. 正则表达式匹配
20. 表示数值的字符串
21. 调整数组顺序使奇数位于偶数前面
22. 链表中倒数第 K 个结点
23. 链表中环的入口结点
24. 反转链表
25. 合并两个排序的链表
26. 树的子结构
27. 二叉树的镜像
28 对称的二叉树
29. 顺时针打印矩阵
30. 包含 min 函数的栈
31. 栈的压入、弹出序列
32.1 从上往下打印二叉树
32.2 把二叉树打印成多行
32.3 按之字形顺序打印二叉树
33. 二叉搜索树的后序遍历序列
34. 二叉树中和为某一值的路径
35. 复杂链表的复制
36. 二叉搜索树与双向链表
37. 序列化二叉树
38. 字符串的排列
39. 数组中出现次数超过一半的数字
40. 最小的 K 个数
41.1 数据流中的中位数
41.2 字符流中第一个不重复的字符
42. 连续子数组的最大和
43. 从 1 到 n 整数中 1 出现的次数
44. 数字序列中的某一位数字
45. 把数组排成最小的数
46. 把数字翻译成字符串
47. 礼物的最大价值
48. 最长不含重复字符的子字符串
49. 丑数
50. 第一个只出现一次的字符位置
51. 数组中的逆序对
52. 两个链表的第一个公共结点
53. 数字在排序数组中出现的次数
54. 二叉查找树的第 K 个结点
55.1 二叉树的深度
55.2 平衡二叉树
56. 数组中只出现一次的数字
57.1 和为 S 的两个数字
57.2 和为 S 的连续正数序列
58.1 翻转单词顺序列
58.2 左旋转字符串
59. 滑动窗口的最大值
60. n 个骰子的点数
61. 扑克牌顺子
62. 圆圈中最后剩下的数
63. 股票的最大利润
64. 求 1+2+3+...+n
65. 不用加减乘除做加法
66. 构建乘积数组
67. 把字符串转换成整数
68. 树中两个节点的最低公共祖先
(2) Leetcode 题解
对题目做了一个大致分类,并对每种题型的解题思路做了总结。
作为要准备踏入码农行业的人来说,要准备校招,怎么能不去刷刷LeetCode呢?LeetCode收录了许多互联网公司的算法题目,被称为刷题神器。
这个Github仓库里有丰富的LeetCode题目解题思路分析和答案源代码,题目主要包含下列内容:
算法思想
双指针
排序
快速选择
堆排序
桶排序
荷兰国旗问题
贪心思想
二分查找
分治
搜索
BFS
DFS
Backtracking
动态规划
斐波那契数列
矩阵路径
数组区间
分割整数
最长递增子序列
最长公共子序列
0-1 背包
股票交易
字符串编辑
数学
素数
最大公约数
进制转换
阶乘
字符串加法减法
相遇问题
多数投票问题
其它
数据结构相关
链表
树
递归
层次遍历
前中后序遍历
BST
Trie
栈和队列
哈希表
字符串
数组与矩阵
图
二分图
拓扑排序
并查集
位运算
(3) 其他常用算法,包括排序、并查集、栈和队列、红黑树、散列表。
一、前言
二、算法分析
数学模型
注意事项
ThreeSum
倍率实验
三、排序
选择排序
冒泡排序
插入排序
希尔排序
归并排序
快速排序
堆排序
小结
四、并查集
Quick Find
Quick Union
加权 Quick Union
路径压缩的加权 Quick Union
比较
五、栈和队列
栈
队列
六、符号表
初级实现
二叉查找树
2-3 查找树
红黑树
散列表
小结
七、其它
汉诺塔
哈夫曼编码
参考资料
每个超链接点进去都有详细的源代码:
操作系统的知识点:
一、概述
基本特征
基本功能
系统调用
大内核和微内核
中断分类
二、进程管理
进程与线程
进程状态的切换
进程调度算法
进程同步
经典同步问题
进程通信
三、死锁
必要条件
处理方法
鸵鸟策略
死锁检测与死锁恢复
死锁预防
死锁避免
四、内存管理
虚拟内存
分页系统地址映射
页面置换算法
分段
段页式
分页与分段的比较
五、设备管理
磁盘结构
磁盘调度算法
六、链接
编译系统
静态链接
目标文件
动态链接
参考资料
请大家进入仓库后点超链接细看:
Linux作为非常重要的一种操作系统,在这个github里单独详细介绍:
一、常用操作以及概念
快捷键
求助
关机
PATH
sudo
包管理工具
发行版
VIM 三个模式
GNU
开源协议
二、磁盘
磁盘接口
磁盘的文件名
三、分区
分区表
开机检测程序
四、文件系统
分区与文件系统
组成
文件读取
磁盘碎片
block
inode
目录
日志
挂载
目录配置
五、文件
文件属性
文件与目录的基本操作
修改权限
文件默认权限
目录的权限
链接
获取文件内容
指令与文件搜索
六、压缩与打包
压缩文件名
压缩指令
打包
七、Bash
特性
变量操作
指令搜索顺序
数据流重定向
八、管道指令
提取指令
排序指令
双向输出重定向
字符转换指令
分区指令
九、正则表达式
grep
printf
awk
十、进程管理
查看进程
进程状态
SIGCHLD
wait()
waitpid()
孤儿进程
僵尸进程
计算机网络:
一、概述
网络的网络
ISP
主机之间的通信方式
电路交换与分组交换
时延
计算机网络体系结构
二、物理层
通信方式
带通调制
三、数据链路层
基本问题
信道分类
信道复用技术
CSMA/CD 协议
PPP 协议
MAC 地址
局域网
以太网
交换机
虚拟局域网
四、网络层
概述
IP 数据报格式
IP 地址编址方式
地址解析协议 ARP
网际控制报文协议 ICMP
虚拟专用网 VPN
网络地址转换 NAT
路由器的结构
路由器分组转发流程
路由选择协议
五、运输层
UDP 和 TCP 的特点
UDP 首部格式
TCP 首部格式
TCP 的三次握手
TCP 的四次挥手
TCP 可靠传输
TCP 滑动窗口
TCP 流量控制
TCP 拥塞控制
六、应用层
域名系统
文件传送协议
动态主机配置协议
远程登录协议
电子邮件协议
常用端口
Web 页面请求过程
HTTP协议:
一 、基础概念
URL
请求和响应报文
二、HTTP 方法
GET
HEAD
POST
PUT
PATCH
DELETE
OPTIONS
CONNECT
TRACE
三、HTTP 状态码
1XX 信息
2XX 成功
3XX 重定向
4XX 客户端错误
5XX 服务器错误
四、HTTP 首部
通用首部字段
请求首部字段
响应首部字段
实体首部字段
五、具体应用
连接管理
Cookie
缓存
内容协商
内容编码
范围请求
分块传输编码
多部分对象集合
虚拟主机
通信数据转发
六、HTTPs
加密
认证
完整性保护
HTTPs 的缺点
七、HTTP/2.0
HTTP/1.x 缺陷
二进制分帧层
服务端推送
首部压缩
八、HTTP/1.1 新特性
九、GET 和 POST 比较
作用
参数
安全
幂等性
可缓存
XMLHttpRequest
面向对象的设计模式
这可是BAT,TMD等互联网公司面试和笔试重点考核的知识点哦:
一、概述
二、创建型
1. 单例(Singleton)
2. 简单工厂(Simple Factory)
3. 工厂方法(Factory Method)
4. 抽象工厂(Abstract Factory)
5. 生成器(Builder)
6. 原型模式(Prototype)
三、行为型
1. 责任链(Chain Of Responsibility)
2. 命令(Command)
3. 解释器(Interpreter)
4. 迭代器(Iterator)
5. 中介者(Mediator)
6. 备忘录(Memento)
7. 观察者(Observer)
8. 状态(State)
9. 策略(Strategy)
10. 模板方法(Template Method)
11. 访问者(Visitor)
12. 空对象(Null)
四、结构型
1. 适配器(Adapter)
2. 桥接(Bridge)
3. 组合(Composite)
4. 装饰(Decorator)
5. 外观(Facade)
6. 享元(Flyweight)
7. 代理(Proxy)
数据库系统原理
应聘后台工程师的程序员们要多花点时间在数据库知识点上:
一、事务
概念
ACID
AUTOCOMMIT
二、并发一致性问题
丢失修改
读脏数据
不可重复读
幻影读
三、封锁
封锁粒度
封锁类型
封锁协议
MySQL 隐式与显示锁定
四、隔离级别
未提交读(READ UNCOMMITTED)
提交读(READ COMMITTED)
可重复读(REPEATABLE READ)
可串行化(SERIALIZABLE)
五、多版本并发控制
版本号
隐藏的列
Undo 日志
实现过程
快照读与当前读
六、Next-Key Locks
Record Locks
Gap Locks
Next-Key Locks
七、关系数据库设计理论
函数依赖
异常
范式
八、ER 图
实体的三种联系
表示出现多次的关系
联系的多向性
表示子类
Java基础
Java 基础
不会涉及很多基本语法介绍,主要是一些实现原理以及关键特性。
Java 容器
源码分析:ArrayList、Vector、CopyOnWriteArrayList、LinkedList、HashMap、ConcurrentHashMap、LinkedHashMap、WeekHashMap。
Java 并发
线程使用方式、两种互斥同步方法、线程协作、JUC、线程安全、内存模型、锁优化。
Java 虚拟机
运行时数据区域、垃圾收集、类加载。
Java I/O
NIO 的原理以及实例。
系统设计
系统设计基础
性能、伸缩性、扩展性、可用性、安全性
分布式
分布式锁、分布式事务、CAP、BASE、Paxos、Raft
集群
负载均衡、Session 管理
攻击技术
XSS、CSRF、SQL 注入、DDoS
缓存
缓存特征、缓存位置、缓存问题、数据分布、一致性哈希、LRU、CDN
消息队列
消息处理模型、使用场景、可靠性
其他工具
工具
Git
一些 Git 的使用和概念。
Docker
Docker 基本原理。
正则表达式
正则表达式基本语法。
构建工具
构建工具的基本概念、主流构建工具介绍。
编码实践
重构
参考 重构 改善既有代码的设计。
代码可读性
参考 编写可读代码的艺术。
代码风格规范
Google 开源项目的代码风格规范。
最后,这个仓库的主人叫郑永川,如果大家从该仓库受益,记得去他主页上点个赞。谢谢。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
给广大码农分享福利:一个业界良心的github仓库,中文计算机资料的更多相关文章
- 与大家分享robotium一个小问题。Test run failed:Instrumentation run failed due to 'java.lang.ClassNotFoundException'
今天和大家分享robotium一个小问题. 我们在运行自已经搭好的框架时,有可能会出现一个找不到类的错误(如上图所示). 问题是重签名工具给出的activity有误,这时我们可以用Appt命令查看重签 ...
- 好程序员分享居中一个float元素
好程序员分享居中一个float元素,我们布局的时候,用margin来设置float元素的外边距来达到效果.对于,在文档流中的元素,我们很容易让它水平居中,只要给元素设置一个固定的宽度,用margin: ...
- 今天领导分享了一个探测端口的命令-linux下提示bash:command not found
今天领导分享了一个探测端口的命令,于是试了一下,提示未找到-bash: nc: command not found 因此决定将bash的命令在复习一下,温故而知新 总结整理于此: 确定你的DNS可以 ...
- 经验分享:一个 30 岁的人是如何转行做程序员,进入IT行业的?
大约一年以前,我成为了一名全职开发者,我想要总结一下这一年的经验,并且和所有人分享,一个 30 多岁的人是如何进入科技行业的: 改变职业是一件吓人的事情,有时候还会成为一件危险的事情.年龄越大,危险就 ...
- 【原创】经验分享:一个小小emoji尽然牵扯出来这么多东西?
前言 之前也分享过很多工作中踩坑的经验: 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移? [原创]经验分享:一个Content-Length引发的血案(almost.. ...
- 【干货分享】Node.js 中文学习资料和教程导航
这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...
- 《Python神经网络编程》中文版PDF+英文版PDF+源代码,业界良心书
下载:https://pan.baidu.com/s/1hI6wMPq4UFvEmpgF3ZV1jg 关于内容 这本书主要揭示神经网络背后的概念,并介绍如何通过Python实现神经网络.全书主要讲了三 ...
- 安利一个很火的 Github 滤镜项目
安利一个很火的 Github 滤镜项目 园长 1 个月前 简评:通过深度学习,一秒钟让你的照片高大上,这是康奈尔大学和 Adobe 的工程师合作的一个新项目,通过卷积神经网络把图片进行风格迁移.项目已 ...
- github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器
一. github仓库迁移到gitlab 先进入 new project: 选择 Import project, 选择下面的github: 进入后,这里需要github的 personal acces ...
随机推荐
- PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的”懒人”很不方便,由于是初学者开始还想怎么在代 ...
- POJ - 3268 Silver Cow Party SPFA+SLF优化 单源起点终点最短路
Silver Cow Party One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to ...
- Mac安装python细节
前言 之前在windows平台上安装python直接用Anaconda,优点是所有的科学计算的库都整合进去了,安装方便.在Mac系统下,当然也可以直接安装Anaconda,但是考虑到Mac会自带pyt ...
- 前端需要了解的http知识
一.五层协议1. OSI(Open System Interconnection 开放式系统互联)七层协议 1)应用层 2)表示层 3)会话层 4)传输层 5)网络层 6)数据链接层 7)物理层2. ...
- ue4 3dui材质参数修改
- luogu P5358 [SDOI2019]快速查询【模拟(?)】
把有单点修改和查询的点离散进一个数组,然后单点修改直接改,记录一个修改时间t,维护一个sm表示这些离散的点的和,val表示出了离散点其他点的值,因为都是一样的所以只记录这一个值即可,记录ljlc为加法 ...
- 洛谷P3646 [APIO2015]巴厘岛的雕塑(数位dp)
传送门 话说莫非所有位运算都可以用贪心解决么……太珂怕啦…… 一直把或运算看成异或算我傻逼…… 考虑从高位到低位贪心,如果能使答案第$i$位为0那么肯定比不为$0$更优 然后考虑第$i$位是否能为$0 ...
- Python学习笔记(数据处理)
处理文件中数据 (统计分数) 看一下我们的文档里的数据: #-- scores.txt 刘备 23 35 44 47 51 关羽 60 77 68 张飞 97 99 89 91 诸葛亮 100 1.先 ...
- 剑指Offer的学习笔记(C#篇)-- 序列化二叉树
题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 一 . 理解题意 二叉树的序列化,是将一个结构化的东西变成扁平化的字符串,序列化二叉树或者是反序列化二叉树就是二叉树和扩展二叉树遍历序列之间的 ...
- 程序员/开发人员的真实生活 (Gif 多图)
往工作环境上传东西的时候: 没保存,就关了 IDE 的时候: 凌晨三点调代码的时候: 正则表达式返回了了预期结果的时候: 当老板告诉我,我那一直负责的模块失效了的时候: 刚修复了Bug,我给老板演示的 ...