- 博客(24)
- 收藏
- 关注
原创 分布式云盘项目(整理中)
文章目录项目整体架构MySQL 表设计用户信息表 (user_info)文件信息表(file_info)用户文件列表(user_file_list)用户文件数量表(user_file_count)共享文件列表(share_file_list)FastDFSNginx访问FastCGI、FastDFS各功能流程解析注册客户端流程服务端流程登录客户端流程服务端流程上传文件、删除文件按下载量升序、降序共享文件列表项目整体架构Qt 作为云盘的客户端,支持文件的上传、下载、删除、共享等;后端使用Nginx作为
2021-09-01 10:08:25 1044
原创 经典算法题 (持续补充中)
文章目录1. 合并K个有序链表2. 和为k的连续子数组的最大长度3. 判断IPV4地址是否合法4. LRU1. 合并K个有序链表题目描述原题链接代码法一:分治class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { if(lists.empty()) return nullptr; while(lists.size() >
2021-08-29 11:56:14 589
原创 C++11新特性
文章目录概述C++11各种技巧1.深度剖析智能指针1.1 智能指针概述1.2 auto_ptr1.3 scoped_ptr1.4 unique_ptr1.5 shared_ptr实现一个简单的shared_ptrshared_ptr源码剖析1.6 weak_ptr1.7 总结2.右值引用与移动语义、引用重叠和完美转发2.1 左值/右值引用与移动语义2.2 引用重叠和完美转发3. lambda表达式与函数对象lambda表达式和函数对象的联系与区别lambda表达式基本用法避免使用[=]和[&]默认捕
2021-08-28 13:33:47 241
原创 二叉树的遍历实现
文章目录1. 二叉树的前序遍历2. 二叉树的中序遍历3. 二叉树的后序遍历4. 二叉树的层序遍历1. 二叉树的前序遍历题目描述原题链接二叉树的前、中、后序遍历的递归写法类似,后面就不写了。递归实现class Solution {public: vector<int> res; void dfs(TreeNode *root) { if(root == nullptr) return; re
2021-08-22 11:11:35 87
原创 剑指offer — 字符串专题
概述此专题包含9道字符串相关问题,如下:替换空格字符串的排列第一个只出现一次的字符左旋转字符串翻转单词序列把字符串转换成整数正则表达式匹配表示数值的字符串字符流中第一个不重复的字符1. 替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。原题链接思路此题比较简单,先准备好一个空串,遍历所给字符串:如果遇到空格就追加%20;遇到正常字符直
2021-08-18 23:23:30 115
原创 Factory 工厂模式
概述Factory工厂模式是最常用的设计模式之一,它提供了一种创建对象的最佳方式;在工厂模式中,我们在创建对象时不会对用户暴露逻辑,而是通过使用一个共同的接口来指向新创建的对象。简单工厂定义简单工厂模式是工厂模式中最简单的一种,它用比较简单的方式来隐藏创建对象的细节,对修改不封闭,新增产品就需要修改工厂,不符合开闭原则。结构该模式包含的角色有:工厂角色、抽象产品角色、具体产品角色,类图如下:示例程序#include <iostream>using namespace s
2021-08-13 17:34:36 277
原创 Linux常用命令(面试专用)
概述本人虽然经常在Linux下敲代码但从未归纳过,现对一些常用命令进行简单分类总结,面试回答的时候也可以从容应对;文件和目录查看文件内容文件权限修改文本处理打包和压缩文件系统的关机、重启进程相关持续补充中… …文件和目录cd命令它用于切换当前目录,其参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd .. 返回上一级目录cd . 返回当前目录cd 进入个人主目录cd ~user1 进入个人主目录cd -
2021-08-13 17:34:19 233
原创 Singleton 单例模式
什么是单例模式?单例模式(Singleton),顾名思义,即内存中存在单个实例的模式。既然是面向对象,那么保证一个类仅有一个实例,并提供一个访问它的全局访问点,就是单例模式。从单例类的设计角度来说,有以下三个关键点:类的构造函数私有化;类中含有一个静态私有对象;该类提供了一个公开的静态方法用于创建或获取它本身的静态成员;单例模式有两种实现方法:饿汉 与 懒汉饿汉模式:使用前就创建了一个唯一的实例对象,即单例类在定义时就进行了实例化;懒汉模式:使用时才创建一个唯一的实例对象,在多线程场景
2021-08-13 17:33:53 155
原创 C++11
概述本文用于分析总结C++11新特性:深度剖析智能指针右值引用、转移语义和完美转发lambda表达式与函数对象四种强制类型转换机制explicit关键字C++11各种技巧=deleteC++11中,当我们定义一个类的成员函数时,如果后面使用"=delete"修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数不能再被调用,否则会出错。下面介绍一个"=delete"的巧妙用法:#include <iostream>class Test{
2021-08-12 10:43:37 149
原创 HTTP基础篇
概述HTTP相关问题在面试过程中经常被问到,本文总结了以下几类HTTP问题:HTTP基本概念Get与PostHTTP特性HTTPS与HTTPHTTP/1.1、HTTP/2、HTTP/3 演变HTTP基本概念Get与PostHTTP特性HTTPS与HTTPHTTP/1.1、HTTP/2、HTTP/3演变...
2021-07-19 17:29:02 539
原创 剑指offer - 二叉树专题
1. 二叉树的镜像题目描述思路2. 二叉树的深度题目描述思路3. 平衡二叉树题目描述思路4. 二叉搜索树的第k个节点题目描述思路5. 重建二叉树题目描述思路6. 二叉树的下一个节点题目描述思路7. 把二叉树打印成多行题目描述思路8. 树的子结构题目描述思路9. 从上往下打印二叉树题目描述思路10
2021-07-10 08:21:09 102
原创 Makefile基础
概述一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。Makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的I
2021-06-26 15:14:29 219
原创 常见排序算法总结
概述总结一下常见的排序算法如下,持续补充:冒泡排序插入排序选择排序快速排序归并排序堆排序本文将从稳定性和时空复杂度的角度分析这些算法,并给出适当优化。【注】稳定性是指如果 a 原本在 b 前面,且a = b,排序之后a仍然在b的前面,那么此排序算法就是稳定的;否则就是不稳定的。冒泡排序插入排序选择排序快速排序归并排序堆排序...
2021-06-22 08:23:19 127
原创 剑指offer-链表专题
1. 删除链表中的重复节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。原题链接题目分析此题的暴力做法可以开一个hash记录每个节点,扫描链表的同时搜索hash表确定当前节点是否重复。但我们可以用双指针解决此题,空间复杂度为O(1)。思路维护p,q两个指针,在移动过程中使两指针之间的区间中的节点值均相同(一个节点也可以);每次固定指针p,指针q移动至和当前维护区间节点值不相同的节点为止;区间仅有一个节点(无重复节点,重新维护p的
2021-06-13 08:24:40 112
原创 xhell7远程连接ubuntu18.04失败原因汇总
本人小白,初用xshell时就出现了一些问题,总结一下连接失败的各种原因首先检查一下你的用户名,用户验证时务必输入小写字母emmm…具体为什么这么做我也不太清楚。上面是一个很奇怪的错误,改完还不可以就可以修改配置文件了,具体做法如下:1.sudo vim /etc/ssh/sshd_config //别忘了加sudo,不然没有写权限2.PermitRootLogin yes // #去掉3.sudo /etc/init.d/ssh restart //重启ssh再试试连接xhell。..
2021-04-06 17:27:06 167
原创 访问github.com过慢的解决方法
在浏览器中打开DNS查询网站:link,输入github.com后选择TTL值较小的IP地址打开本地电脑的C:\Windows\System32\drivers\etc目录,找到hosts文件使用文本编辑器打开hosts文件,并在文件的末尾一行添加如下信息IP地址 github.com在命令行中输入ping github.com,此时可以通过github域名,成功再次打开github.com应该就很快了...
2021-03-07 18:06:30 697
原创 Github上传与更新代码(新手用)
一. 上传本地代码至github首先申请一个github账号:link.然后下载git工具,国内镜像地址:link. 一直下一步即可安装成功进入github首页,点击右上角+会出现:点击New repository后会进入如下页面:注意名字可用,添加一个README文件即可,点击Create repository后会生成新页面,点击code复制地址用于上传项目。找到需要上传的文件夹,右键点击文件夹,选择选项中的Git Bash Here, 在git中输入git clone和刚才复制的地
2021-03-07 15:38:01 642 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人