- 博客(96)
- 问答 (1)
- 收藏
- 关注
原创 剑指 Offer 35. 复杂链表的复制(哈希/衍生拆分图解)
题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。题目分析题中每个节点新增了 random 指针,指向链表中的 任意节点 或者 空 。这个 random 指针就意味着在复制时,除了基础的结点创建 ,还需要创建节点中的 pre.random指针及其指向的节点 。本题难点在复制链表的过程中构建新链表各节点的 random 引用指向。解题哈希映射可以
2022-01-05 21:45:53
356
原创 剑指 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
268
原创 C++常见面试题(2019年校招总结)
一、C++与C语言的联系c语言是面向过程的结构化语言,c++是面向对象的的程序设计语言,在c语言的基础上进行了扩充和完善,并且c++兼容了c语言的面向过程的特点。在C++中可以使用继承、多态进行面向对象的编程。面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的不走,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。举个例子(玩五
2021-11-24 22:29:23
906
原创 C++校招常见面试题(2019年校招总结)
总结了语法、数据结构、常见排序算法、操作系统、网络五大块常见校招面试题。欢迎补充与修正。一、C++与C的区别面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。
2021-11-24 22:27:28
3346
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
445
原创 剑指 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
180
原创 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
365
原创 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
4348
原创 Redis是单线程为什么还那么快?
Redis为什么那么快?Redis为什么是单线程,为什么不适用多线程?Redis并不是CPU密集型的服务,如果不持久化,所有的Redis数据都只会在内存中完成,并不会涉及到任何的I/O操作,所以处理速度是非常快的。Redis的瓶颈是在于网络传输带来的延迟和等待客户端的数据传输(网络I/O),所以使用多线程模型来处理全部的外部请求并不是一个很好的选择。
2021-01-14 21:15:07
305
原创 linux安装Redis(超详细,只要三分钟,每一步命令都有命令截图及运行截图)
Linux中redis详细安装,亲测有效,三分钟一路Ctrl+C和Ctrl+V搞定
2021-01-11 22:34:11
484
原创 Linux中的chmod详解
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。ll 可以查看当前路径下文件的权限ll xxx 查看指定文件的权限三个位置:第一个表示文件所有者的权限第二个表示与文件所有者同属一个用户组的其他用户的权限.
2020-12-19 17:19:33
4654
1
原创 MySQL流浪记(七)—— MySQL删除表数据
MySQL中最常用的两种删除数据的方式就是delete和truncate,在使用的时候是有一些区别的,要根据不同的场景进行选择。
2020-10-07 17:14:49
329
2
原创 MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)
CONCAT、CONCAT_WS和GROUP_CONCAT它们功能的相同指出是连接字符串,他们的不同却呈现一个阶级感受,从CONCAT到GROUP_CONCAT之间层层递进,步步升级,每一步都有着不一样的风景。
2020-06-15 08:59:42
338
原创 MySQL流浪记(五)—— MySQL中常见函数的使用(笔记)
MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据。本文简单的介绍MySQL中一些常见的函数,方便之后查阅。目录为字符函数、数学函数、日期函数、聚合函数、流程控制函数。(可以点击标签直接跳转)
2020-06-14 11:20:59
468
1
原创 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
952
原创 MySQL流浪记(三)—— Linux安装MySQL数据库5.7.30(亲测有效3分钟即可)
最近开始学习MySQL数据库,首先从MySQL的安装开始(亲测有效哦)。从MySQL的下载、配置MySQL以及修改MySQL的原始密码来阐述了一个完整的MySQL安装流程,配有源代码和效果图。
2020-06-10 16:18:26
1390
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
3979
原创 MySQL流浪记(二)—— MySQL介绍及其特性
MySQL是一个关系型数据库,是一个开放源码的关系型数据库管理系统,由于性能高、成本低、可靠性好,已经成为了最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,他也逐渐应用于更大规模网站和应用。
2020-06-08 17:03:48
404
原创 MySQL流浪记(一)—— 初步认识数据库的内涵
学习数据库,首先要对其有所了解,方可百战不殆。文章从数据库的意义、发展、类型以及关系型数据库与非关系型数据库的对比进行了描述。
2020-06-08 10:01:12
655
原创 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
1603
原创 C与C++的区别
一、面向对象与面向过程的区别面向过程面向过程编程是就分析出解决问题题的不走,然后把这些步骤一步一步的实现,使用的时候一个一个的一次调用就可以了。面向对象面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个市委在整个解决问题的步骤中的行为。举个例子(玩五子棋)使用面向过程的思想来考虑就是:开始游戏,白棋先走、绘制画面、轮到黑子、绘制画面、判断输赢、...
2019-10-02 20:54:20
317
原创 map的详解及常见面试题
map是STL中的一个关联式容器,它提供一对一的K-V的数据处理能力,由于这个特性,在我们需要完成Key-Value数据处理的时候可以很方便的调用。map的底层结构是红黑树,这棵树对数据有自动排序的功能,所以map中的数据都是有序的,并且查找的时间复杂度基本是O(LogN)。
2019-08-16 16:51:36
1455
原创 STL中vector和list的区别
对vector和list在底层结构、随机访问、插入和删除、空间利用率、迭代器、迭代器失效、使用场景这七个方面进行了总结。
2019-08-05 16:31:08
7626
1
原创 C++继承一览
什么是继承?基类和派生类默认成员函数的关系是什么?什么是菱形继承?菱形继承的问题是什么?什么是菱形虚拟继承?如何解决数据冗余和二义性的?继承和组合的区别?什么时候用继承?什么时候用组合?
2019-07-30 18:10:27
498
原创 内存管理
C/C++内存分布;C语言中动态内存管理方式;C++中动态内存管理;operator new与operator delete函数;new和delete的实现原理;定位new表达式(placement-new);常见面试题。
2019-07-29 21:09:36
283
原创 C/C++程序从源代码到可执行程序的流程
对于一个C/C++编写的程序,从源代码到可执行程序的过程通常是由IDE来完成的,一般分为四个步骤:预处理、编译、汇编、链接,下面就来详细说一下这四个步骤。
2019-07-17 17:30:28
2237
空空如也
带环链表能逆置吗?为什么?
2019-06-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人