auto commit

This commit is contained in:
CyC2018 2019-04-20 13:14:16 +08:00
parent c2036800a3
commit 22a0322468
11 changed files with 71 additions and 91 deletions

View File

@ -508,7 +508,7 @@ public class AccessWithInnerClassExample {
**1. 抽象类**
抽象类和抽象方法都使用 abstract 关键字进行声明。抽象类一般会包含抽象方法,抽象方法一定位于抽象类中
抽象类和抽象方法都使用 abstract 关键字进行声明。如果一个类中包含抽象方法,那么这个类必须声明为抽象类
抽象类和普通类最大的区别是,抽象类不能被实例化,需要继承抽象类才能实例化其子类。
@ -607,9 +607,11 @@ System.out.println(InterfaceExample.x);
在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。
- [Abstract Methods and Classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
- [深入理解 abstract class 和 interface](https://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/)
- [When to Use Abstract Class and Interface](https://dzone.com/articles/when-to-use-abstract-class-and-intreface)
## super
- 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。

View File

@ -1,6 +1,6 @@
<!-- GFM-TOC -->
* [1. 给表达式加括号](#1-给表达式加括号)
* [2. 不同的二叉搜索树II](#2-不同的二叉搜索树II)
* [2. 不同的二叉搜索树](#2-不同的二叉搜索树)
<!-- GFM-TOC -->
@ -49,10 +49,12 @@ public List<Integer> diffWaysToCompute(String input) {
}
```
# 2. 不同的二叉搜索树II
# 2. 不同的二叉搜索树
[95. Unique Binary Search Trees II (Medium)](https://leetcode.com/problems/unique-binary-search-trees-ii/description/)
给定一个数字 n要求生成所有值为 1...n 的二叉搜索树。
```html
Input: 3
Output:
@ -102,5 +104,6 @@ private List<TreeNode> generateSubtrees(int s, int e) {
</br><div align="center">⭐️欢迎关注我的公众号 CyC2018在公众号后台回复关键字 📚 **资料** 可领取复习大纲,这份大纲是我花了一整年时间整理的面试知识点列表,不仅系统整理了面试知识点,而且标注了各个知识点的重要程度,从而帮你理清多而杂的面试知识点。可以说我基本是按照这份大纲来进行复习的,这份大纲对我拿到了 BAT 头条等 Offer 起到很大的帮助。你们完全可以和我一样根据大纲上列的知识点来进行复习,就不用看很多不重要的内容,也可以知道哪些内容很重要从而多安排一些复习时间。</div></br>
<div align="center"><img width="180px" src="https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/%E5%85%AC%E4%BC%97%E5%8F%B7.jpg"></img></div>

View File

@ -1,41 +1,25 @@
<!-- GFM-TOC -->
* [算法思想](#算法思想)
* [数据结构相关](#数据结构相关)
* [参考资料](#参考资料)
<!-- GFM-TOC -->
# 算法思想
- [双指针](Leetcode%20题解%20-%20双指针.md)
- [排序](Leetcode%20题解%20-%20排序.md)
- [贪心思想](Leetcode%20题解%20-%20贪心思想.md)
- [二分查找](Leetcode%20题解%20-%20二分查找.md)
- [分治](Leetcode%20题解%20-%20分治.md)
- [搜索](Leetcode%20题解%20-%20搜索.md)
- [动态规划](Leetcode%20题解%20-%20动态规划.md)
- [数学](Leetcode%20题解%20-%20数学.md)
# 数据结构相关
- [链表](Leetcode%20题解%20-%20链表.md)
- [](Leetcode%20题解%20-%20树.md)
- [栈和队列](Leetcode%20题解%20-%20栈和队列.md)
- [哈希表](Leetcode%20题解%20-%20哈希表.md)
- [字符串](Leetcode%20题解%20-%20字符串.md)
- [数组与矩阵](Leetcode%20题解%20-%20数组与矩阵.md)
- [](Leetcode%20题解%20-%20图.md)
- [位运算](Leetcode%20题解%20-%20位运算.md)
# 参考资料
- Leetcode
- Weiss M A, 冯舜玺. 数据结构与算法分析——C 语言描述[J]. 2004.
- Sedgewick R. Algorithms[M]. Pearson Education India, 1988.
- 何海涛, 软件工程师. 剑指 Offer: 名企面试官精讲典型编程题[M]. 电子工业出版社, 2014.
- 《编程之美》小组. 编程之美[M]. 电子工业出版社, 2008.
- 左程云. 程序员代码面试指南[M]. 电子工业出版社, 2015.
- [目录1.md](wiz://open_document?guid=0363f9be-6c61-4018-a18f-5fb6b69f3ad8&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [目录.md](wiz://open_document?guid=aea0669d-f1e9-45e8-b908-ace138b2b38d&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [位运算.md](wiz://open_document?guid=018d1246-b949-4390-bde8-a408d790b0e6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [图.md](wiz://open_document?guid=ffdd3935-ceca-44b1-b906-6a55f2c3de27&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [数组与矩阵.md](wiz://open_document?guid=5826916a-29e7-4e8e-b51f-e5e21c57dd5e&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [字符串.md](wiz://open_document?guid=6c1eca79-e4dd-4770-a676-851c7aec98f6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [哈希表.md](wiz://open_document?guid=ae94469e-e4cf-48de-b617-86ac0b5bb6dc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [栈和队列.md](wiz://open_document?guid=a72c38a7-9bdd-4812-a606-d05811999957&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [树.md](wiz://open_document?guid=29c197cf-d74f-4a13-95ea-ebfa9ac9a7dd&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [链表.md](wiz://open_document?guid=003cada1-3b15-4ce1-8396-071a507d5574&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [数学.md](wiz://open_document?guid=1f1d9636-fcfd-46cd-9d4e-230a9055bb9b&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [动态规划.md](wiz://open_document?guid=9e63dfb7-9acf-4c7d-bfc1-98ce351322a5&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [搜索.md](wiz://open_document?guid=4d32fd26-25af-45aa-a26f-5f50f6358c47&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [分治.md](wiz://open_document?guid=b54185d5-b004-432f-9e94-0c37813b8206&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [二分查找.md](wiz://open_document?guid=ced206c5-5177-490f-bf8d-a47c161650fc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [贪心思想.md](wiz://open_document?guid=f748a2ba-825a-4a3f-ac90-95b0095750c6&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [排序.md](wiz://open_document?guid=c9be6460-6e32-4d42-82c7-5b0196d6edcc&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [双指针.md](wiz://open_document?guid=359d008c-0a34-43bd-807d-71bde1afa866&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)

View File

@ -570,23 +570,23 @@ WHERE col5 = val;
每次只能给一个变量赋值,不支持集合的操作。
```sql
DELIMITER //
delimiter //
CREATE PROCEDURE myprocedure(OUT ret INT)
BEGIN
DECLARE y INT;
SELECT SUM(col1)
FROM mytable
INTO y;
SELECT y*y INTO ret;
END //
create procedure myprocedure( out ret int )
begin
declare y int;
select sum(col1)
from mytable
into y;
select y*y into ret;
end //
DELIMITER ;
delimiter ;
```
```sql
CALL myprocedure(@ret);
SELECT @ret;
call myprocedure(@ret);
select @ret;
```
# 十九、游标
@ -603,27 +603,26 @@ SELECT @ret;
4. 关闭游标;
```sql
DELIMITER //
CREATE PROCEDURE myprocedure(OUT ret INT)
BEGIN
DECLARE done BOOLEAN DEFAULT 0;
delimiter //
create procedure myprocedure(out ret int)
begin
declare done boolean default 0;
DECLARE mycursor CURSOR
FOR
SELECT col1 FROM mytable;
declare mycursor cursor for
select col1 from mytable;
# 定义了一个 continue handler当 sqlstate '02000' 这个条件出现时,会执行 set done = 1
DECLARE CONTINUE HANDLER FOR sqlstate '02000' SET done = 1;
declare continue handler for sqlstate '02000' set done = 1;
OPEN mycursor;
open mycursor;
REPEAT
FETCH mycursor INTO ret;
SELECT ret;
UNTIL done END REPEAT;
repeat
fetch mycursor into ret;
select ret;
until done end repeat;
CLOSE mycursor;
END //
DELIMITER ;
close mycursor;
end //
delimiter ;
```
# 二十、触发器

View File

@ -1,24 +1,16 @@
<!-- GFM-TOC -->
* [目录](#目录)
* [参考文献](#参考文献)
<!-- GFM-TOC -->
# 目录
部分绘图文件可以在这里免费下载:[剑指 Offer](https://www.processon.com/view/5a3e4c7be4b0909c1aa18b49),后续会慢慢把所有题目都配上 GIF 演示图。
- [3\~9](剑指%20Offer%20题解%20-%203\~9.md)
- [10\~19](剑指%20Offer%20题解%20-%2010\~19.md)
- [20\~29](剑指%20Offer%20题解%20-%2020\~29.md)
- [30\~39](剑指%20Offer%20题解%20-%2030\~39.md)
- [40\~49](剑指%20Offer%20题解%20-%2040\~49.md)
- [50\~59](剑指%20Offer%20题解%20-%2050\~59.md)
- [60\~68](剑指%20Offer%20题解%20-%2060\~68.md)
# 参考文献
何海涛. 剑指 Offer[M]. 电子工业出版社, 2012.
- [目录.md](wiz://open_document?guid=623c5627-b006-4b79-a5ae-c30eef4ac9e0&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [目录1.md](wiz://open_document?guid=a8e2ba94-d912-4e60-9600-c037bd948410&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [3\~9.md](wiz://open_document?guid=600f1a94-9a30-455b-b65d-71cfbecb5d4f&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [10\~19.md](wiz://open_document?guid=50161b0b-f529-4626-aa18-312188217042&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [20\~29.md](wiz://open_document?guid=417f7307-cb54-4cb5-a771-6841bdf35b2a&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [30\~39.md](wiz://open_document?guid=a27a6185-a907-4b8f-bac4-f8fd22c9de02&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [40\~49.md](wiz://open_document?guid=6d39c460-a824-459b-8aa0-d4ada7b7ee1c&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [50\~59.md](wiz://open_document?guid=a1883a29-9d55-4ca9-b157-918220bf2335&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)
- [60\~68.md](wiz://open_document?guid=69de366c-5d58-4ce6-a1d2-2e7d3340fba4&kbguid=&private_kbguid=1b80336d-8ff7-4e8a-a975-5b7e2aeccd20)

View File

@ -30,7 +30,7 @@
- LRULeast Recently Used最近最久未使用策略优先淘汰最久未使用的数据也就是上次被访问时间距离现在最久的数据。该策略可以保证内存中的数据都是热点数据也就是经常被访问的数据从而保证缓存命中率。
- LFULeast Frequently Used最不经常使用策略指的是在一段时间内数据被使用次数最少的优先被淘汰。该策略和LRU的区别是在一段时间内LRU优先淘汰最后一次使用时间距离当前时间最远的而LFU优先淘汰最近一段时间内使用次数最少的
- LFULeast Frequently Used:最不经常使用策略,优先淘汰一段时间内使用次数最少的数据
# 二、LRU

View File

@ -127,7 +127,7 @@ FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问
# 分页与分段的比较
- 对程序员的透明性:分页透明,但是分段需要程序员显划分每个段。
- 对程序员的透明性:分页透明,但是分段需要程序员显划分每个段。
- 地址空间的维度:分页是一维地址空间,分段是二维的。

View File

@ -544,7 +544,7 @@ int pipe(int fd[2]);
它具有以下限制:
- 只支持半双工通信(向交替传输);
- 只支持半双工通信(向交替传输);
- 只能在父子进程中使用。
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png"/> </div><br>
@ -581,7 +581,7 @@ FIFO 常用于客户-服务器应用程序中FIFO 用作汇聚点,在客户
需要使用信号量用来同步对共享存储的访问。
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用使用内存的匿名段。
## 6. 套接字

View File

@ -661,7 +661,7 @@ int pipe(int fd[2]);
它具有以下限制:
- 只支持半双工通信(向交替传输);
- 只支持半双工通信(向交替传输);
- 只能在父子进程中使用。
<div align="center"> <img src="https://gitee.com/CyC2018/CS-Notes/raw/master/docs/pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png"/> </div><br>
@ -698,7 +698,7 @@ FIFO 常用于客户-服务器应用程序中FIFO 用作汇聚点,在客户
需要使用信号量用来同步对共享存储的访问。
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用使用内存的匿名段。
多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。
### 6. 套接字
@ -944,7 +944,7 @@ FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问
## 分页与分段的比较
- 对程序员的透明性:分页透明,但是分段需要程序员显划分每个段。
- 对程序员的透明性:分页透明,但是分段需要程序员显划分每个段。
- 地址空间的维度:分页是一维地址空间,分段是二维的。

View File

@ -40,7 +40,7 @@
- **版本** : 有 4IPv4和 6IPv6两个值
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- **区分服务** : 用来获得更好的服务,一般情况下不使用。

View File

@ -369,7 +369,7 @@ MAC 地址是链路层地址,长度为 6 字节48 位),用于唯一标
- **版本** : 有 4IPv4和 6IPv6两个值
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- **首部长度** : 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为首部固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
- **区分服务** : 用来获得更好的服务,一般情况下不使用。