✨✨👀日常工作以及知识点库,欢迎交流学习
求职: 深圳 广州 wx:Sebastianv-v
记录常用数据结构,包括快速排序,冒泡排序,插入排序,图,树等数据结构以及剑指offer部分题目
- 二叉树,构树,二叉查找树?什么样的二叉树适合用数组存储
- 堆,为什么说堆排序没有快速排序快?持续堆化的完全二叉树
- 堆的应用,如何查找topk的搜索关键词
- 图,如何存储微博,微信等社交网络好友关系?散列表与链表的存储结构,邻接表
- 图的广度优先遍历与深度优先遍历,广度优先,存储三个关系,深度优先,压栈关系
- Trie🌲,如何实现搜索引擎的搜索关键词提示功能呢?和散列表以及红黑树比较又有什么优缺点?
- 贪心,如何用贪心算法实现哈夫曼编码,讲究贪心策略,我一开始只要最好的,实例,剪绳子问题
- 分治,分而治之,分的策略以及合并的策略,求逆序度
- 回溯,蝴蝶效应,回到原点,8皇后的争锋相对
- 暴力回溯解决杨辉三角最短路径问题,动态规划解决重复问题
- 动态规划,存储的是一个状态或者一个价值
- 拓扑排序,通过局部的依赖关系,推导全局有序
- 广度优先搜索,权值加入,让优先队列以及小顶堆完成地图最短路径
- BitMap,让思维转换到二进制,0,1判断可去重,布隆过滤器实现多个哈希判断
- B+树的存在,数据库索引查找,提高查找效率,降低内存空间
- A*启发式搜索🔍,欧几里得公式与最短路径启发寻路,曼哈顿解决求平方根问题
思想:先正确再优化!
- twoSum提供两种解法,分别是时间换空间与空间换时间
- addTwoNumbers其实这个有个类比的string写法,有机会要将这个整个写法重新修改,但是确实是用时最少
- reverseInt其实就是分析是否溢出,通过余数分析与整数得到的结果分析
- 判断回文整数,最简单的做法,求余最快
- rommantoInt,倒过来就好了
- longestCommonPrefix计数
- mergeTwoSortList眼界真的要开阔一点,递归的做法之前一直用循环做,傻不傻
- Subtree of Another Tree 不行就左,不行就右,递归是一个好解法
- symetric树的对称,分两个树
- Binary_preorder_traversal前序遍历循坏,仿栈
- Binary_inorder_traversal好吧,受到了前序遍历的干扰,其实就是遍历完左边,然后再看右边
- ValidParenthess判断有效,map先构造,而后再实现栈匹配
- RemoveDuplicate去重,快慢指针做,做完就数据搬移
- MergeTwoSortedArray其实就是归并的设计,只不过最后将申请的空间都浓缩到nums1中,尝试直接在最后赋值,关键就是边界条件
- Maxi_SubArray最长最大的数组子串,一个一个加,两个Sum比对
- BinaryTreeTravel两个队列实现遍历
- Binary_zigzag_travel两个栈实现之字形遍历
- longestSubstring尝试获取i到j的最大长度,用哈希的思维计算
- sqrt(x)求平方,牛顿迭代公式,求K值斜率求得result
- 二分查找从一个有序数组构建一颗平衡二叉树,中序遍历的思想
- 插入排序的思想,超级简单searchInsertPosition
- 进行add-binary,只是排除一下情况,然后加个flag
- 很巧妙的后序遍历以及计算两个子树的深度差大于1,这个要多看!
重读cpp Primer,并且将代码实现的过程
- 拷贝构造函数。类值与类指针行为
- 读写流
- iostream与ostream文件读写流
- 关于文件读写
- allocator的使用,一块申请到的内存,怎么去使用
- new与delete,枚举与智能指针的实现
- 基本关联容器map与pair使用
- 容器,顺序容器使用
- 动态内存管理
- 泛型算法结合可调用对象的使用
- 面向对象程序设计public继承
- 运算符重载(没写完呐)
- 私有继承,继承实现
- 完美赋值运算符重载
- 我只是抄一下screen的实现
- 封装数据成员private
- 右值引用,参考四行代码带你理解右值引用
- 发现好文const还有续命内存机制-(int *const&p=&a)
主要收集各大面试题,并且写出了自己的理解。
- 结构体和共同体的区别struct和union
- static和const分别怎么用,类里面的static和const可以同时修饰成员函数吗?
- 指针和引用区别,引用可以用常指针实现吗?
- 什么是智能指针?为什么要用智能指针?如何打破循环引用的问题?实现一个智能指针呗!对于资源管理有什么作用?
- 什么是可调用对象?了解lambda表达式吗?function又是怎么回事?
- 什么是多态,多态有什么用途。(虚函数)
- 水文-C调用C++
- C++面试考点陈列
- C++面试题杂谈,字节对齐-vector-list-allocator-红黑树
- C++面试题杂谈,红黑树与B树,声明与定义,malloc匹配与一致性哈希
- C++面试题杂谈,TCP,慢启动,流量控制,301与302,poll与epoll
对Cpp Primer的学习笔记以及部分实现。以及研读Effective C++55 items
- 关于深拷贝与浅拷贝,知道多少?
- 虚析构函数的用法--体验一下继承--构造
- 相依于声明式,不相依于定义式,继承关系的is-a
- 强制左侧运算对象是一个左值,面向对象编程
- 标准库部分
- 结构体struct的使用
- 模版编程
- C++primer变量与基本类型&字符串、向量和数组
- C++表达式&语句&函数&类
- IO库与顺序容器
- Cpp范型算法,关联容器以及动态内存
- 面向对象程序设计
- 运算符重载与类型转换
- 拷贝控制,了解cpp默默为你创建的四个函数
- 模版与泛型编程(这篇偷懒,😠,可怕,估计是feed up)
- 杂项
尝试读了一篇博文叫flexbox,了解css
设计模式精讲以及理解
- 工厂模式,抽象工厂模式
- 命令模式-将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化
- 装饰模式-主要靠包装-动态地给一个对象添加一些额外的职责
- 代理模式-找人帮忙打游戏,打着打着给你送金币
- 单例模式-我就是我,不一样的烟火,限量版的我
- 模版方法-我有一套模版,一套有一套
- 设计模式之禅-遵循六大,可以到处溜达
- 创建类型模式-单例、原型、工厂方法、抽象工厂、建造模式
- 结构类型模式-适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式
工作的时候用到了js,做了一些笔记,希望以后查询的时候可以用得上
主要参考nodejs深入浅出的书
- Node简介,特点,模块,异步,学习笔记
- 理解Buffer,深入理解buffer缓存机制
- v8内核初识,内存控制
- Node网络编程,引入tcp与http模块
- 玩转进程,node也能新建进程,基于多核CPU
学了一天的python,实现了一下excel的简单读取
参考tcp/ip详解与图解tcp/ip以及刘超老师的课程,尝试网络编程实现
- mac层与链路层以及ip网际层,网络上跑的包都是完整的,不能有上层没下层,可以有下层没上层
- TCP与UDP区别详述,以及网络编程部分
- HTTP状态码与首部字段解读,应用层的世界,从来都不简单
- HTTP缓存机制,渣男需要被负责
- HTTP2.0我受够了等待
- HTTPS-为了安全🔐,我愿意带上套
- Google-QUIC官宣HTTP/3.0-QUIC协议"城会玩" UDP也是我的主场
- DNS->HTTPDNS,网络的负载均衡手段
- CDN,京东建仓策略,就近配送
apue巨著,每天读一个小时,理解并深入每个知识点,对进程与多线程多一点了解。
- UNIX标准及实现
- 标准IO库
- 文件和目录
- 系统文件信息亚数据
- 进程环境
- 进程控制fork、wait、exec
- 进程关系(会话,进程组,进程)与守护进程(setsid)
- 信号,进程与线程异步的思想
- 线程,就是一个正在运行的函数
- 线程控制,根据线程的属性,pthread_kill
- 高级IO,非阻塞IO,epoll、select、poll通知
- 进程间通信,管道,socket,XSI(System V)
- 终篇-网络通信IPC,socket,协议决定通信
开始学习操作系统的知识,分为进程与线程,内存管理,文件系统,输入输出,死锁。不会看书,只会不断查博客,然后做知识总结。
- 进程与线程,很抽象
- 信号量,条件变量,互斥锁以及读写锁🔒,保证线程顺序执行的方法
- 进程与线程调度,因环境而已,离不开抢占
- 内存管理,分页还是分段,看你的笔记本怎么写
- 死锁,先发制人还是后发制人?银行家有经验