自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三毛创作记

记录一个程序员的成长历程

  • 博客(96)
  • 问答 (1)
  • 收藏
  • 关注

原创 链表(图文详解)

链表与数组的对比,单链表和双链表的对比,双链表性能比单链表好,为什么不经常使用?有环链表面试题?

2019-07-10 12:49:49 91180 23

原创 剑指 Offer 35. 复杂链表的复制(哈希/衍生拆分图解)

题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。题目分析题中每个节点新增了 random 指针,指向链表中的 任意节点 或者 空 。这个 random 指针就意味着在复制时,除了基础的结点创建 ,还需要创建节点中的 pre.random指针及其指向的节点 。本题难点在复制链表的过程中构建新链表各节点的 random 引用指向。解题哈希映射可以

2022-01-05 21:45:53 240

原创 链表简单实现(增删查改)

关于链表的原理已经有一篇链表文章写的很详细了,这篇文章主要侧重于代码的实现,主要使用go实现。

2021-12-26 21:50:33 2596

原创 数据结构 - 队列(图解+源码)

顺序队列与循环队列分别实现,顺序队列的假溢出

2021-12-20 00:14:31 1206

原创 剑指 Offer 03. 数组中重复的数字()

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2021-12-02 20:37:10 158

原创 C++常见面试题(2019年校招总结)

一、C++与C语言的联系c语言是面向过程的结构化语言,c++是面向对象的的程序设计语言,在c语言的基础上进行了扩充和完善,并且c++兼容了c语言的面向过程的特点。在C++中可以使用继承、多态进行面向对象的编程。面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的不走,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。举个例子(玩五

2021-11-24 22:29:23 794

原创 C++校招常见面试题(2019年校招总结)

总结了语法、数据结构、常见排序算法、操作系统、网络五大块常见校招面试题。欢迎补充与修正。一、C++与C的区别面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。

2021-11-24 22:27:28 3063 2

原创 剑指 Offer 06. 从尾到头打印链表(递归、逆置链表、头部动态插入)

题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解法一:递归(递归本来就是一种栈,所以算做一类)func reversePrint(head *ListNode) []int { if head == nil { return []int{} } if head.Next == nil { return []i

2021-11-23 22:46:52 395

原创 剑指 Offer 09. 用两个栈实现队列(相邻相同操作只需要移动一次)

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTail"

2021-11-22 23:02:25 115

原创 Redis配置文件常用配置消息解说--版本5.0.9

单位配置文件中的uint单位对大小写不敏感网络 NETWORKbind 127.0.0.1 #绑定的ipprotected-mode yes #保护模式port 6379 #监听的端口号通用 GENERALdaemonize yes #以保护进程的方式运行,默认是no,需要我们自己开通,否则一退出进程就结束了supervised no #管理守护进程,默认是no,一般不用动pidfile /var/run/redis_6379.pid #如果以后台的方式运行,就.

2021-03-13 17:53:12 260

原创 Linux设置gopath

vim /etc/profile #编辑gopath,写入如下export GOROOT=/usr/local/go #设置为go安装的路径,有些安装包会自动设置默认的gorootexport GOPATH=$HOME/gocode #默认安装包的路径 可以加自己想要的路径,用:分割export PATH=$PATH:$GOROOT/bin:$GOPATH/binsource /etc/profile #启用刚设置的配置文件go env #查看本机gopath

2021-01-21 15:21:42 3698

原创 git远程分支修改名字

假设分支名称为oldName想要修改为 newName本地分支重命名(还没有推送到远程)git branch ……

2021-01-19 20:00:37 3990 1

原创 Redis是单线程为什么还那么快?

Redis为什么那么快?Redis为什么是单线程,为什么不适用多线程?Redis并不是CPU密集型的服务,如果不持久化,所有的Redis数据都只会在内存中完成,并不会涉及到任何的I/O操作,所以处理速度是非常快的。Redis的瓶颈是在于网络传输带来的延迟和等待客户端的数据传输(网络I/O),所以使用多线程模型来处理全部的外部请求并不是一个很好的选择。

2021-01-14 21:15:07 225

原创 linux安装Redis(超详细,只要三分钟,每一步命令都有命令截图及运行截图)

Linux中redis详细安装,亲测有效,三分钟一路Ctrl+C和Ctrl+V搞定

2021-01-11 22:34:11 404

原创 Linux中的chmod详解

chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。ll 可以查看当前路径下文件的权限ll xxx 查看指定文件的权限三个位置:第一个表示文件所有者的权限第二个表示与文件所有者同属一个用户组的其他用户的权限.

2020-12-19 17:19:33 4243 1

原创 MySQL流浪记(七)—— MySQL删除表数据

MySQL中最常用的两种删除数据的方式就是delete和truncate,在使用的时候是有一些区别的,要根据不同的场景进行选择。

2020-10-07 17:14:49 239 2

原创 MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)

CONCAT、CONCAT_WS和GROUP_CONCAT它们功能的相同指出是连接字符串,他们的不同却呈现一个阶级感受,从CONCAT到GROUP_CONCAT之间层层递进,步步升级,每一步都有着不一样的风景。

2020-06-15 08:59:42 288

原创 MySQL流浪记(五)—— MySQL中常见函数的使用(笔记)

MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据。本文简单的介绍MySQL中一些常见的函数,方便之后查阅。目录为字符函数、数学函数、日期函数、聚合函数、流程控制函数。(可以点击标签直接跳转)

2020-06-14 11:20:59 291 1

原创 键盘上的反引号怎么打

今天在学习数据库的时候突然要用到反引号,反引号?第一次听说反引号这个符号。几经周折,找到这个反引号,分享给大家。

2020-06-11 18:45:11 5767

原创 MySQL流浪记(四)—— DDL和DML区别与介绍

DDL:数据定义语言,对于数据库、表、图、索引等进行操作。具体操作有:CREATE(创建)、ALTER(修改)、DROP/TRUNCATE(删除)DML:数据操纵语言,对表中的数据进行操作。具体操作有:INSERT(插入)、DELETE(删除)、UPDATE(修改)接下来就是对DDL和DML进行具体操作。DDL(数据定义语言)查看所有的数据库SHOW DATABASES;创建数据库CREATE DATABASE 数据库名切换数据库USE 数据库名[外链图片转存失败,源站可能有防盗链机

2020-06-11 17:22:25 812

原创 MySQL流浪记(三)—— Linux安装MySQL数据库5.7.30(亲测有效3分钟即可)

最近开始学习MySQL数据库,首先从MySQL的安装开始(亲测有效哦)。从MySQL的下载、配置MySQL以及修改MySQL的原始密码来阐述了一个完整的MySQL安装流程,配有源代码和效果图。

2020-06-10 16:18:26 1311 4

原创 tar命令集合(详解)

tar 命令可以将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。示例以test文件为例压缩命令tar -cvf test.tar test test1解压命令tar -xvf test.tar主操作模式:-A, --catenate, --concatenate 追加 tar 文件至归档-c, --create 创建一个新归档-d, --diff, --compare 找出归档和文件系统的差异–delete

2020-06-09 16:54:13 3804

原创 MySQL流浪记(二)—— MySQL介绍及其特性

MySQL是一个关系型数据库,是一个开放源码的关系型数据库管理系统,由于性能高、成本低、可靠性好,已经成为了最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,他也逐渐应用于更大规模网站和应用。

2020-06-08 17:03:48 362

原创 MySQL流浪记(一)—— 初步认识数据库的内涵

学习数据库,首先要对其有所了解,方可百战不殆。文章从数据库的意义、发展、类型以及关系型数据库与非关系型数据库的对比进行了描述。

2020-06-08 10:01:12 542

原创 Qt实用快捷键(较全面)

总结整理的常用快捷键,欢迎留言补充!

2020-03-09 22:04:17 193

原创 Could not create directory "F:\Qt\Test\Error in " Util.asciify("build-First_02-Desktop_Qt_5_6_3_Min

第一次使用的Qt的时候出现了这种错误!相信很多人在第一次使用的时候都会遇到这样的情况,果不其然,搜了一下很多的处理方法,其中有一种我感觉是最有效的,就是改一下他的生成路径就好了,因为这个错误的出现是因为无法在下面这个相对路径中创建目录。所以将这个相对路径更改为绝对路径就可以。解决方案:1.在左侧找到项目按钮2.在项目中将这个路径更改为当前项目所在的绝对路径3.结果,正确!...

2019-12-06 16:21:46 1456

原创 C与C++的区别

一、面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的不走,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。举个例子(玩五子棋)使用面向过程的思想来考虑就是:开始游戏,白棋先走、绘制画面、轮到黑子、绘制画面、判断输赢、...

2019-10-02 20:54:20 272

转载 epoll精讲

epoll原理、epoll接口、epoll中的水平触发和边缘触发、epoll使用场景。

2019-08-18 16:20:34 193

原创 map的详解及常见面试题

map是STL中的一个关联式容器,它提供一对一的K-V的数据处理能力,由于这个特性,在我们需要完成Key-Value数据处理的时候可以很方便的调用。map的底层结构是红黑树,这棵树对数据有自动排序的功能,所以map中的数据都是有序的,并且查找的时间复杂度基本是O(LogN)。

2019-08-16 16:51:36 1380

原创 操作系统之动态库和静态库

什么是库?怎么是静态库?什么动态库?静态库和动态库的区别是什么?

2019-08-15 16:21:35 505

原创 操作系统之进程概念

进程概念:进程的创建、进程的查看、进程的状态、环境变量、程序地址空间。

2019-08-08 17:43:04 246

原创 C++多态讲解以及常见面试题

多态常见的面试题。多态的概念。虚函数和纯虚函数。函数重载、函数重定义、函数重写的区别。

2019-08-06 16:44:24 283

原创 C++多态面试题汇总

总结了一些常见的面试题,通过查阅资料给出了一些浅薄的解析,欢迎各位批评指教。

2019-08-06 15:11:30 3345 2

原创 STL中vector和list的区别

对vector和list在底层结构、随机访问、插入和删除、空间利用率、迭代器、迭代器失效、使用场景这七个方面进行了总结。

2019-08-05 16:31:08 7223 1

原创 排序(冒泡、选择、插入、希尔、快排、堆排、归并)

冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序的实现、原理、优化以及特性!

2019-08-02 17:36:34 524

原创 C++继承一览

什么是继承?基类和派生类默认成员函数的关系是什么?什么是菱形继承?菱形继承的问题是什么?什么是菱形虚拟继承?如何解决数据冗余和二义性的?继承和组合的区别?什么时候用继承?什么时候用组合?

2019-07-30 18:10:27 417

原创 常见的设计模式--单例模式

饿汉模式的实现;饿汉模式的使用场景;线程安全懒汉模式的实现;懒汉模式的使用场景;

2019-07-29 21:13:19 241

原创 内存管理

C/C++内存分布;C语言中动态内存管理方式;C++中动态内存管理;operator new与operator delete函数;new和delete的实现原理;定位new表达式(placement-new);常见面试题。

2019-07-29 21:09:36 234

原创 C/C++程序从源代码到可执行程序的流程

对于一个C/C++编写的程序,从源代码到可执行程序的过程通常是由IDE来完成的,一般分为四个步骤:预处理、编译、汇编、链接,下面就来详细说一下这四个步骤。

2019-07-17 17:30:28 2075

原创 二叉树——堆

初始化堆;堆的向上调整;堆的向下调整;堆删除;堆插入;堆容量调整;模拟实现堆(源码)

2019-07-14 20:45:27 459 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除