灵神的刷题指南
灵神的刷题指南分享|如何科学刷题? - 力扣(LeetCode) 合理运用心流通道,科学刷题,快乐刷题! 前言怎么刷算法题?按照什么顺序刷题?如何科学地刷题训练? 如果你刚接触力扣,还不熟悉基本编程语法和常用库函数,推荐刷力扣官方的入门题单: 「新」动计划 · 编程入门 编程基础 0 到 1 有了一些简单题的积累,就可以开始刷我的题单啦~ 训练方法 A要点: 按照专题刷题。同一个专题下的题目,套路是一样的,刷题效率杠杠滴~ 从易到难,量力而行。题目已经按照难度分整理好了,按照顺序刷就行~ 推荐先刷【滑动窗口】和【二分】题单,这是两个最基础的算法,套路也较为固定,刷题过程中还可以学到一些做题技巧。其他题单可以按照自己的兴趣选择。 请结合【基础算法精讲】学习。 推荐安装...
Day30 | 回溯算法 组合总和II&&切割问题
代码随想录 | Day30 | 回溯算法:组合总和II&&切割问题主要学习内容: 树枝树层去重以及切割问题解法,模板总结 40.组合总和II40. 组合总和 II - 力扣(LeetCode) 解法思路: 这个是数层间去重,不是树枝去重,即如图所示这样 树枝去重我们传入的参数index赋值为i+1而不是i就已经防止了树枝去重,而在树层去重,是在同一层不能选重复的,我们之前说过,一个for循环可以产生一层的结点。现在要在同一层不能选重复的,那说明,在for循环里面选择过的数(比如在i=0时压入了path),在本层函数的for循环其他时候不能压入path。 1.函数参数和返回值 12vector<vector<int>> res;void backtracking(vector<int> path,int sum,int index,vector<int> candidates,int...
Effective C++ 读书笔记
Effective C++ 读书笔记1、让自己习惯C++条款 01 :视C++为一个语言联邦C++的四个层次: C:C++是在C语言的基础上发展而来的 Object-Oriented C++:这是C++中不同于C的部分,这里主要指面向对象。 Template C++:C++中的泛型编程。 STL:这是一个标准模板库,它用模板实现了很多容器、迭代器和算法,使用STL往往事半功倍。 条款 02: 尽量const、enum、inline替换#define const好处 define直接常量替换,出现编译错误不易定位(不知道常量是哪个变量) define没有作用域,const有作用域提供了封装性 enum好处: 提供了封装性 编译器肯定不会分配额外内存空间(其实const也不会) inline的好处: define宏函数容易造成误用(下面有个例子) 1234567//define误用举例#define MAX(a, b) a > b ? a : bint a = 5, b = 0;MAX(++a, b) //a++调用2次MAX(++a, b+10)...
Effective C++读书笔记博客汇总
Effective C++读书笔记博客汇总这是csdn链接,大家感兴趣可以去看看 Effective C++ | 读书笔记 (一)-CSDN博客 Effective C++ | 读书笔记 (二)-CSDN博客 Effective C++ | 读书笔记 (三)-CSDN博客 Effective C++ | 读书笔记 (四)-CSDN博客 个人阅读感受: 我是第一次读到一半就没读了,觉得看不懂,读起来也比较枯燥 做过两个项目以后,第二次读才写的博客,有一些地方确实在项目中会运用到,但其他的还是有不少不太理解的,之后再做做别的项目进行第三次阅读之后再进行补充
手写Nginx内存池移植项目
手写Nginx内存池移植项目注意点 1.所有需要传入内存池入口指针(pool)的地方都不用传入了,因为私有变量pool_存储的就是内存池入口指针 2.在C++中,void* 指针是一个通用指针类型,它可以指向任何类型的数据。然而,由于C++是一种类型安全的语言,直接将 void* 转换为其他类型的指针(或反之)而不进行显式转换(即“强转”)通常是不被允许的,或者至少是不被推荐的。 0.预编译文件123456//pch.h#pragma once#ifndef PCH_H#define PCH_H#endif 12//pch.cpp#include"pch.h" 1.ngx_mem_pool.h...
Day29 | 回溯算法 电话号码的字母组合&&组合总和
代码随想录 | Day29 | 回溯算法:电话号码的字母组合&&组合总和主要学习内容: 组合题目的模板 17.电话号码的字母组合17. 电话号码的字母组合 - 力扣(LeetCode) 解法思路:这道题其实主要的难点是要搞清楚模板里面的for循环到底在干些什么事情 树的每个分支其实就是每一次for循环产生的,每一层递归函数的for循环可以整整产生一层节点,比如第一层递归函数的for产生的就是要分别取a,b,c,一共循环三次,取出来三个数,所以第一层有三个节点 第二层也是类似,分别选了def,才有了ad,ae,af三个结果,所以有3*3=9个结果 而第一层的abc是数字2的集合,第二层的def是数字3的集合,所以每一层递归函数都是在遍历一个不同的数的集合,我们要做的就是让递归函数知道他这一层要遍历哪个数字的集合 1.函数参数和返回值 123vector<string> res;vector<string>...
Day28 | 回溯算法 组合&&组合总和III
代码随想录 | Day28 | 回溯算法:组合&&组合总和III关于这个章节,大家最好是对递归函数的理解要比较到位,听着b站视频课可能呢才舒服点,可以先去搜一搜关于递归函数的讲解,理解,再开始这个章节会比较好一些 我觉得回溯就是对传入递归函数的参数加加减减,加了的减掉,减了的加上 主要学习内容: 组合题目的模板 77.组合77. 组合 - 力扣(LeetCode) 解法思路:首先,把问题转换为树形结构,树的每一层的各个结点都是由本层逻辑的for循环产生的,树的深度是由我们所求集合的大小决定的。 我们在第一层取出一个数字,第一层就是 1 ,2 ,3 ,4 第二层从剩余的集合中取出一个数字,那就是 [1,2] [1,3] [1,4] …. 而我们集合大小为2,那么就只有这两层,树的深度也就这两层 而我们选完[1,2]怎么返回[1]的时候去选择[1,3]呢? 这时候就是回溯算法,回溯就是恢复你选择之前的状态,让你去选择另外一个,本质上是穷举的思想 1.函数参数和返回值 12vector<vector<int>> res; void...
尚硅谷 | Nginx | 学习笔记
尚硅谷 | Nginx | 学习笔记尚硅谷Nginx教程由浅入深(一套打通丨初学者也可掌握)_哔哩哔哩_bilibili 正向隐藏客户端,反向隐藏服务器端 一、Nginx相关概念1.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 Nginx...
Day27 | 二叉树 将有序数组转换为二叉搜索树&&二叉搜索树转换为累加树
代码随想录 | Day27 | 二叉树:将有序数组转换为二叉搜索树&&二叉搜索树转换为累加树主要学习内容: 1.构建二叉树 2.二叉搜索树转换为累加树的思路,主要是性质的运用 108.将有序数组转换为二叉搜索树108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode) 解法思路:和从中序和后序构建二叉树一个思路 1.函数参数和返回值 1TreeNode *tra(vector<int> nums) 返回当前已经构建好的结点,如果不返回这个的话,我们无法的得到构建好的根节点,传入的是构建以当前节点为根结点的子树需要的数 2.终止条件 直到没有数即没有结点要构建就是结束 12if(nums.size()==0) return nullptr; 3.本层代码逻辑 首先将数组正中间的值设为根结点,即数组的分割点,因为我们要构建的是二叉搜索树 左子树就是前半段,右子树就是后半段,然后递归调用前半段和后半段就行 我这里用的是左闭右开区间,左子树...













