自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (7)
  • 收藏
  • 关注

原创 图解Golang内存管理机制!

上篇说到超超从汇编的角度的解析了make和new的区别,下面来到了面试中常见的考点GC,Go的GC常常因为性能问题被业界所诟病,下面跟着超超来看看内存垃圾是如何产生的,以及Go从1.3到1.8在GC上做了哪些改进吧!一、内存垃圾面试官:你知道程序的垃圾是怎么产生的吗?考点:Go内存管理超超:程序在内存上被分为堆区、栈区、全局数据区、代码段、数据区五个部分。对于C++等早期编程语言栈上的内存由编译器管理回收,堆上的内存空间需要编程人员负责申请与释放。在Go中栈上内存仍由编译器负责管理回收,而堆上的内存

2021-07-14 11:34:33 718

原创 sync.once详解

超超为了能让婷婷过上幸福美满的生活,决定去大厂历练一番,下面是他去大厂面试时遇到的几个关于单例的问题。一、认识单例超超:您好,面试官~面试官:你好,你平时开发是用 windows 还是 linux 居多?超超:(哎呀,这是要问我linux问题吗,算了,如实回答吧) 我平时都是用windows开发的。面试官:那你知道 windows 的资源管理器只能单开,但是cmd命令行可以开很多个,有想过这是为什么吗?考点:单例的使用场景优缺点超超:资源管理器在整个系统运行过程中不会因为不同的任务管理器内容

2021-03-30 15:10:06 3345 3

原创 滑动窗口

一、前言在数组中查找一个数,可以使用二分法查找,但是算法问题中还有一些是在数组中查找一个区间,这时滑动窗口就是一种很好的解决思路。很多同学学过滑动窗口算法,但是一做题就错,这是因为有很多细节问题会在解答时出错,本文将依次介绍该算法的模板,易错点,分类题型,希望读者看完之后能极大的提高做题速度以及准确度。二、什么是滑动窗口概念:滑动窗口是双指针算法的一种,利用双指针在数组单一方向滑动,形成一个子区间,对子区间进行剪枝,最终得出满足条件的解。过程如下:windows中元素未完全

2021-03-29 11:50:54 243

原创 广度优先搜索

广度优先搜索一、前言先看这样一个小故事,有一天,婷婷去超超的大学,想给异地已久的超超一个惊喜。但是方向感不好的婷婷很快就在大学迷路了。超超得知后便去寻找思恋已久的婷婷。此时超超的妈妈也在来学校的路上,现在超超要以最快的速度去寻找婷婷(不然可能会出现我和你妈同时迷路你先救谁的问题了????)。那么,问题来了,你可以制定一种策略帮超超尽快找到婷婷吗?下面将依次介绍广度优先搜索的定义,算法模板,俩种常见的题型,以及常见的出题点于易错点,帮助超超解决问题的同时,再顺手拿个offer!二、什么是广搜广

2021-03-29 11:45:00 923

原创 详解二分法

一、简单二分前言一直以来我对二分都有一个误解,认为问题必须满足某种有序才可以用二分法去解决问题,这种想法有点狭义化二分法了,其实二分法是一种算法思想,通过不断对折区间的方式,帮助我们得到满足条件的解,在我们写算法题的时候二分法是必须要满足有序性的,他可能是局部有序,也有可能是整体有序,但是一定具有单调性,下面将通过几个例题来给大家讲解二分的思想,先看一道很有意思的趣味题:有N件产品,他们的重量都是G,但是当中有一件是不合格的产品,他的重量是g,那么现在给你一个称,求你称最少的次数找出这个产品,相信很

2021-02-19 20:02:18 16633 1

原创 一个恋爱小故事告诉你什么是gRPC?!

RPC对RPC不了解的人,或许会纠结其与TCP、HTTP等的关系。后者是网络传输中的协议,而RPC是一种设计、实现框架,通讯协议只是其中一部分,RPC不仅要解决协议通讯的问题,还有序列化与反序列化,以及消息通知。一个完整的RPC架构里面包含了四个核心的组件,分别是Client ,Server,ClientOptions以及ServerOptions,这个Options就是RPC需要设计实现的东西。客户端(Client):服务的调用方。服务端(Server):真正的服务提供方。客户端存根

2021-02-09 10:48:05 15539 3

原创 动态规划心得

一、找准三个基本要素重叠子问题:求每一个状态都会要求的解,比如斐波那契数列的第n项最优子结构:获取状态n时,其他状态的最优情况,没有其他条件约束状态转移方程:求第n个状态值的方法,比如斐波那契的f(n)=f(n-1)+f(n-2)二、思路过程确定base case,因为求状态n需要用前面的状态去推倒确定状态,也就是dp[]数组中,下标的意义确定dp数组中变量的含义确定状态转移方程但凡遇到需要递归的问题,最好都画出递归树,这对你分析算法的复杂度,寻找算法低

2021-01-25 20:29:15 205 4

原创 滑动窗口

一、简介上一篇文章我们说了二分法的实际应用,二分法用于查找某个特俗位置时很好用,但是实际问题中,还有很多情况是要求我们要在一个固定数组中查找一串数满足某个固定条件,比如你肯定遇到过这样一个问题,那么滑动窗口主要就是用来解决这样的问题,在固定数组中查找特殊数组二、问题最小覆盖字串分析:这是力扣上关于滑动窗口非常经典的一题,那么这题的思路其实也是简单,所谓滑动窗口,你可以想象成是一个窗户,A这一半在另一半B上滑动,求满足情况的位置,很显然我们需要俩个容器,windows表示当前滑动窗口中的数,need满

2020-11-20 16:16:45 212

原创 谷歌打包拓展

谷歌打包拓展的路径C:\Users\cc05\AppData\Local\Google\Chrome\User Data\Default\Extensions

2020-11-18 19:06:41 96

原创 记录mac的一次风扇爆转

一、mac转动过快原因:mac风扇转动速度是和cpu是使用率有关系的,因此转动过快可以打开任务管理器看一下,是哪个程序有问题,我当时是zsh出了问题,导致占用大量cpu从而带动风扇爆转如果关闭了占用cpu过高的程序,重启后仍风扇仍转动过快,那么根据苹果技术客服的说法是因为有一些缓存存在系统中,那么这时候就要重制mac上的一些缓存,第一个是重置风扇管理设备重置SMC,如果无效的话可以再重置一下多媒体,等系统设备重置NVRAM 或 PRAM,重置这些设备都不会丢失用户文件的,大胆重置。如果这些都无用的话

2020-11-12 17:17:56 517

原创 摩尔投票

一、什么

2020-11-06 12:15:37 165

原创 奇数偶数公式

一、求小于n有多少个奇数和偶数(包括0)奇数有:i/2+1个偶数有:(i+1)/2个二、程序中的应用题目:所有奇数长度的数组之和给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[

2020-11-06 10:20:53 4856

原创 8.struct

一、基础知识

2020-11-02 19:05:13 96

原创 7.map

一、基础知识

2020-11-02 19:01:09 97

原创 6. 切片

一、俩种创建没有长度的[ ],这里区别于数组,数组是有长度的通过make创建make([ ]int, len, cap)二、俩种拷贝=拷贝会直接赋值地址,这时俩个切片指向同一块地址空间copy是值拷贝,会复制一份值到目标切片(这里注意数组是必须长度一样才能拷贝)三、俩种添加用append(s, num):在切片s后面加上数字num用切片s[low: high: max] low默认值是0,high的默认值是切片长度,最终结果含左不含右,len=high-low,cap=max-l

2020-10-27 19:36:56 143

原创 5. 数组

一、数组的创建var nums […]int:注意不定数组要标出…不然就是切片,数组大小可以是const修饰的常量但不能是变量初始化一个数组一共有三种方式var nums1 [len]int //len是const修饰的常量var nums2 [10]int = [10]int{12,3,4} //不用编译器确定的初始化方法nums3 := [...]int{1, 2, 3} //由初始化再确定大小nums4 := [5]int{1:10, 2:30} //定好位置初始化,未定的位置初始

2020-10-27 19:09:20 99

原创 4. defer

defer作用defer用于延迟函数调用,将defer修饰的代码段放在main函数结束的最后一刻调用如果有多个defer,那么将遵循后入栈的先调用的规则应用场景:defer通常被应用于资源的释放,保证无论怎样,最后加锁的资源都能被释放...

2020-10-27 18:32:26 73

原创 3. 匿名函数与闭包

一、函数类型函数也是一种类型可以作为函数返回值,也可以作为参数传入子函数中可以用type FuncType func(int ,int) int来替换二、匿名函数与闭包匿名函数是指在主函数中定义一个函数用变量fun接受,之后再通过fun()来调用该方法闭包就是指匿名函数,只是在匿名函数中引用来主函数中变量的值,因此在变量会一直存在,不会被gc掉package mainimport "fmt"//匿名函数与闭包的使用//闭包就是匿名函数中引用了外部的变量, 且变量是通过传引用的方式

2020-10-27 18:27:24 328

原创 2. C++与Go区别

一、程序习惯上go项目中必须要有main包和main函数,这俩个决定了go程序的入口go的main函数与C++也不同,没有参数列表也没有返回值go的分号可以不要二、基础类型go习惯将类型写在最后如:var num intgo语言基础类型有int8,float32,float64等,且无float类型,字符的类型是bytego中还多了一个复数类型三、变量的赋值go中有C11的赋值方法a:=1,在for循坏中十分实用go中多了一个多重赋值,如:var (a intb int

2020-10-26 22:22:38 3706 8

原创 1. go引言

go语言基础1.go语言为什么快(1)go语言使用的import而不是include,可以有效减少重复编译的次数(2)go没有使用模板编程减少了模块的编译时间2.go语言优势(1)可以直接打包发送不依赖其他库(2)自动垃圾回收机制不用手动释放内存(3)内置的并发库,以及轻量化的协程库(4)大量的网络并发库...

2020-10-26 21:32:37 81

原创 goland常用快捷键

常用快捷键command+/ 注释⌘F12 查看文件结构(即文件所包含的常量、变量、类型、接口、函数、方法等)command+option+L 代码格式化⌘P 查看方法或函数建议的参数(光标首先选中函数名或者光标至于函数后的括号中)...

2020-10-26 21:05:13 860

原创 字符串

lua语言中字符都是八位即一个字节lua中的字符串都是不可变值,相当于java中的string,如果将字符串中的变量改变了的话,需要用一个新的字符串变量去接收#返回字符串中有多少个字符,不会把最后的标志位算上,相当于strlen字符串在定义时可以用单引号或者双引号,但是用于嵌套的话,只能是不同的引号之间嵌套强制类型转换:数值转到字符串:10…20=“1020”用…可以将数值变成字符串字符串到数值:“10”+1=11.0这里注意因为字符串转到数值会变成浮点型,所以结果是一个浮点型的数显示类型转.

2020-08-27 20:19:25 116

原创 3.数值

lua5.3中float和int都是64位,float被称为双精度浮点型科学计数法中+en代表乘以10的n次方在用==比较是否相等时,lua中的整形和浮点都是number类型,==不会去比较子类型是否相同,因此2与2.0是相等的如果要区分类型,那么可以加一个type去区分加减乘都遵循如果有一个是只要有一个运算符是浮点型,那么最后结果就是浮点型除法,无论俩个数是整形还是浮点型,最后结果都是浮点型取整的有三个函数:(1)floor()无限向负无穷取整(2)ceil()无限向正无穷取整(3)m.

2020-08-06 19:19:23 205

原创 1.lua语言入门

从命令行读入用户输入的一个数a=io.read("*n")从lua中退出来os.exit()或者用EOF命名(1) 命名只能以字母或者下划线组成(2) 下划线+大写字母通常会被lua作为特殊用途回收变量将变量设为nil,就会被lua自动回收lua中的三目运算(1) lua中的逻辑运算符都是遵循短路径优先的,即a and b中a成立就返回b,反之则返回a,在a or b中如果a成立则返回b否则返回a(2) a and b or c 等同于三目运算符,但是前提b必须为truenot运算.

2020-08-05 19:46:44 221

原创 进程间通信

原理每个进程都是0-4G的虚拟内存空间,其中1G内核空间彼此互不干扰,因此进程彼此之间无法相互获取资源,这时通讯就依靠于内核缓冲区进行,以下介绍的管道,内存映射都是通过管道内存缓冲区进行。通信方法管道信号共享映射区本地套接字各自优缺点如下:这里重点说一下管道和共享内存相比优缺点:管道使用比共享内存简单的多,而且出错可能较低,但是是单向半双工通信,一段只能读或者写,且数据读完就不存在了,且普通管道只能在有血缘关系的进程下才可以通信。共享内存使用内核内存映射到文件的方式进行通信,这种方式

2020-06-02 15:56:49 99

原创 linux系统编程小结

程序和进程的区别程序是编好的二进制文件,在磁盘上不占用内存,cpu等系统资源进程是程序运行一次的过程,占用cpu和内存等系统资源一个程序可以有多个进程,但是一个进程只属于一个程序并发和并行的区别并发是在一个cpu上利用时钟中断,模拟多个程序同时进行的效果并行是有多个核,每个核上有不同的线程在运行,是真正的同时运行fork函数头文件<sys/types.h><unistd.h>函数原型pid_t fork()返回值:等于0:返回的是子进程大于0:返回

2020-06-01 16:53:10 138

原创 windows下cmake链接到lua库的俩种方法

前言在vscode上用cmake链接到lua库花了差不多一天时间,简直要崩溃了,现将俩种方法记录下来希望对小伙伴有帮助find_package第一种介绍一下用find_package由编译器帮你找到库的位置,这种方法比较适用于你拿到一台陌生的机器,比较方便,他会在环境变量,同级目录中帮你找所需的库和头文件,也可以指定目录。这里就不多介绍,感兴趣的小伙伴可以去官方文档查一下(官方文档)。cm...

2020-04-22 10:22:20 1340

原创 贪心算法类型总结

下面这篇文章就简单介绍一下我对贪心算法的认识,算是对之前知识的一个回顾,首先贪心算法获得的局部最优解而不是整体最优解,这时候你肯定在想什么是整体最优解什么是局部最优解呢,举个简单的例子吧,如果希望中国GDP可以快速增长那么我们现在把中国储藏的石油这些全挖了,GDP应该能增长不少吧,这个获得的就是一个局部的最优解,他并没有考虑未来的发展情况,那么以后还会为大家介绍动态规划(背包问题)。那么我先做做...

2020-02-13 12:44:42 839

原创 STL中sort总结

前言平时写算法题时经常会用的到sort排序,本文将会从sort原理,sort在结构体,vector,map中使用方法总结sort原理1.数据量大时采用QuickSort快排算法,分段归并排序。2.一旦分段后的数据量小于某个门槛(16),为避免QuickSort快排的递归调用带来过大的额外负荷,就改用Insertion Sort插入排序。3.如果递归层次过深,还会改用HeapSort堆排序...

2020-02-13 12:07:05 557

原创 模拟类贪心

链接: 921. 使括号有效的最少添加.思路:很典型的一道利用栈解决的问题,这题贪心的策略在于用自己添加最少的括号让所有括号匹配在一起。因此我们要让尽量多的括号能匹配在一起,所以我们对字符串中出现的括号做讨论:1.出现‘(’:直接入栈2.出现‘)’:判断栈顶元素是否是’(’,如果是将栈顶元素弹栈,如果不是则继续压栈。最后判断栈中还有多少个元素即可解决代码:class Solution...

2020-02-13 10:11:31 135

原创 atoi、itoa、sprintf

1.atoi作用:将字符串转化成整形函数原型:int atoi(const char *str)参数:str为要转化的字符串例子: atoi(“2154”);2.itoa作用:将整形转化成字符串函数原型:char *itoa (int value, char *str, int base );参数:value需要转化的值,str目标字符串,base进制,返回值也是一个指向目标子串的...

2019-11-25 11:09:26 139

原创 常见的设计模式

设计模式大体上分为三类创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。1、工厂模式一、工厂方法模式(Facto...

2019-04-21 09:09:09 107

原创 隔离级别

在SQL中定义了四种隔离级别,每一种级别都规定了一个事物中所做的修改,哪些在事物内和事物间是可见的,那些事不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。隔离:隔离的产生主要是在并发情况下读取数据可能出现脏读,不可重复读和幻读的情况。因为并发的存在,可能会出现同一时间,多个人对一个数据或者表查询或者修改。事务的基本要素(ACID)1、原子性(Atomicity):事务开始后...

2019-04-02 09:05:00 94

原创 git的基本介绍和使用

简介git是一款开源的分布式版本管理工具,git的诞生也是相当传奇的,由Linux之父-Linus Benedict Torvalds开发而来,当初Linus Benedict Torvalds仅仅是为了辅助Linux内核的开发才一并开发了这个至今为止世界上最快的、最简单的版本管理工具。关于这个传奇的故事,笔者就不在此赘述。目前,git虽然很流行,但也仅仅是在国外。在国内,多数公司还在使用sv...

2019-03-06 09:35:05 438

原创 http协议

http请求由三部分组成,分别是:请求行、消息报头、请求正文HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。1、常用的HTTP方法有哪些?GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。P...

2019-02-26 18:44:55 113

转载 C++ const用法

C++ const用法 尽可能使用const  C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量#include&lt;iostream&gt;using namespace std;int main(){ ...

2019-01-29 10:44:18 1218

原创 大数问题

大数问题前言大数问题是蓝桥杯这几年的热门考点了,最近看面经的时候,我发现公司面试也喜欢问大数问题,可能蓝桥杯这样更贴近与实际需要吧,一般会有一道结果填空题是大数问题,属于送分题,拿下这题和前面的爆破算法,基本就可以稳住三等奖了。解决这类问题需要注意这几点就行了:1.知道BigInteeger中的常见方法(加减乘除,等于)2.了解String类中的基本操作3.有基本的算法设计思路(刷过一定...

2019-01-27 10:00:14 312

转载 动态规划

一.背包问题引用书上关于0-1背包和部分背包的阐述:二.贪心与动态规划区别关于红色矩形部分解释为什么0-1不能使用贪心算法,是因为当你选择一个物品时,整个物品的大小都需要计算,然而背包的的大小又是固定的,那么剩下的背包大小与剩下的物品之间就有个容纳问题。就像图b第二个树状图属于容量20,而剩余物品大小30,显然放不下,所以说选择放与不放会影响后放物体能否尽可能填满背包。这个与部分背包问题...

2019-01-25 11:40:33 118

原创 深度优先算法

深度优先算法前言深度优先是遍历图的一种算法,对于我们解蓝桥杯的题目,我们可以不懂图是什么,他是怎样遍历图。对于蓝桥杯来说他就是一种暴力的算法,就是一种将很多层for循环化成递归的方法,用于爆破来解一些问题。他是蓝桥杯的必考考点,希望大家务必掌握,这种题目一般有俩种类型,排列和组合。下面我们通过几道题目来了解这个算法。排序例题题目背景猪猪hanke得到了一只鸡题目描述猪猪Hanke特别...

2019-01-23 12:02:07 737

原创 递归

递归算法简介递归也就是自己调用自己的一种算法,通俗来说就是写一个子函数,然后在子函数中反复调用自身的过程,递归可以应对一些反复执行同一单调过程的题目。如在斐波那契数列求第n项的问题中就是反复执行执行第三项等于前俩项,所以就可以用递归来解决这个问题。做重复循环的问题还有一种方法就是之前大家学的for循环了,一开始不习惯用递归解决问题的同学都可以先从for循环入手,等用for循环做出了相关问题,再...

2019-01-18 20:03:11 151

45.Qt实现贪吃蛇SnakeEat.rar

qt入门的一个好的教程,帮助快速了解qt的实现机制,欢迎下载

2019-10-02

蓝桥杯往届真题

收集了蓝桥杯三届的真题,方便考前复习时使用熟悉蓝桥杯的题型

2019-03-01

JDK1.6 API帮助文档

jdk1.6的帮助文档,第九届第十届都是jdk1.6,希望对大家有帮助

2019-01-27

蓝桥杯深度优先搜索

整合了几道蓝桥杯近几年的算法题,希望对大家熟悉了解这个算法有帮助

2019-01-23

递归算法实例练习

针对递归的俩个经典题目,有代码,希望对大家有帮助。

2019-01-18

贪心算法简单例题

关于贪心算法的俩道题配合着,我写的博客应该会有帮助,如果写完还想要题的话可以私聊我

2019-01-06

蓝桥杯爆破算法

通过几个案例希望让大家对爆破算法能有更深的了解,案例中的代码都是java

2018-12-30

空空如也

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

TA关注的人

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