自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

suoyudong的博客

c/c++技术

原创 leetcode Datebase练习题

文章目录leetcode DataBase大的国家交换工资 leetcode DataBase 大的国家 Description: Solution select name,population,area from World where area>3000000 or populati...

2020-04-29 11:03:23 32 0

原创 leetcode算法习题----动态规划系列

斐波那契数列 1.斐波那契数列 题目描述: 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N &g...

2020-04-26 08:14:25 40 0

原创 Go语言爬虫出现403问题解决

前言 最近在做慕课网上《Google工程师带你深度了解Go语言》中的项目,一个单任务版的爬虫。现在爬取了网页信息,解析了用户页面之后,出现了错误,如下 Fetcher:errorfetching url http://album.zhenai.com/u/XXXX:wrong status co...

2020-04-25 10:22:54 135 1

原创 Go语言笔记---goroutine

文章目录并发轻量级线程(goroutine)---根据需要随时创建的“线程”通道---在多个goroutine间通信的管道 并发 并发是指在同一时间可以执行多个任务。 Go语言通过编译器运行时,从语言上支持了并发的特性。Go语言的并发通过goroutine特性完成。goruntine类似于线程...

2020-04-21 07:29:32 41 0

原创 用Sublime Text3创建一个完整的go项目

用Sublime Text3创建一个完整的go项目 1.首先在GOPATH目录下的src目录中创建项目文件夹gotest,准备将它作为一个包供外部程序使用,创建文件main.go,编写程序main.go: package gotest //文件名和包名一致 import ( "fmt...

2020-04-19 07:48:32 84 0

原创 Go语言笔记---反射学习

文章目录反射反射的类型对象反射的值对象 反射 反射是指程序运行期对程序本身进行访问和修改的能力。 程序在编译时,变量被转换位内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取本身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段信息、类型信息、结构体信息等整合到...

2020-04-18 22:59:06 24 0

原创 Go语言学习笔记---接口

文章目录接口声明接口实现接口的条件理解类型和接口的关系接口的嵌套组合---将多个接口放在一个接口内在接口和类型之间转换 接口 Go语言中使用组合实现对象特性的描述。 对外通过接口暴露能使用的特性。 Go语言的接口设计是非侵入式的,接口编写者无需知道接口被哪些类型实现。而接口实现者只需要知道实现的...

2020-04-16 07:56:08 24 0

原创 Go语言小示例---接口的使用

便于扩展输出方式的日志系统 日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络。 本例将搭建一个支持多种写入器的日志系统。 package main import ( "errors" "fmt" "...

2020-04-15 14:59:34 29 0

原创 GO语言学习笔记---结构体

结构体 Go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。 结构体成员是由一系列的成员变量构成,这些成员变量也被称为字段。字段有一下特性: 拥有自己的类型和值 字段名必须唯一 字段的类型也可以是结构体,甚至是字段所在结构体的类型。 注意:Go语言中没有类的概念,也不...

2020-04-15 09:17:12 51 0

原创 Go语言小示例---关于结构体的使用

二维矢量模拟玩家移动 package main import ( "fmt" "math" ) type Player struct { currPos Vec2 //当前位置 targetPos Vec2 //目标位置 spe...

2020-04-15 09:16:30 25 0

原创 秋招高频面试题---在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?比如zhihu.com 解析: 第一步应该是浏览器对用户输入的网址做初步的格式化检查,只有格式通过才会进入下一步。 那么浏览器使用的是http还是https访问服务器呢? 浏览器默认使用http协议,除非可以加上https,所以浏览器...

2020-04-01 12:17:49 54 0

原创 经历了残酷的秋招之后,我总结出了全面的HTTP面试题。

Http知识点HTTP 状态码HTTP的请求方法:GET和POST的区别?HTTP协议概念和特点:什么是长连接?什么是短连接?HTTPS的基本概念和工作原理HTTP与HTTPS有什么区别?说一下数字证书是什么?里面都包含着哪些内容?HTPP1.0和HTTP1.1的区别:HTTP2.0的特点:Ses...

2020-04-01 12:14:27 52 0

原创 经历了残酷的秋招之后,我总结了全面的TCP/IP面试知识点

计算机网络知识点OSI七层模型计算机网络的五层协议体系结构TCP(传输控制协议)的主要特点TCP协议选项:标志位的含义UDP(用户数据报协议)的主要特点TCP和UDP的区别TCP和UDP的应用场景:如何使UDP实现可靠传输?(基于自动重传请求ARQ的实现)为什么说UDP比TCP更有优势?为什么像即...

2020-04-01 11:53:25 39 0

原创 图算法之-----拓扑排序

拓扑排序 应用场景: 例如选课,施工过程不可能出现两个课程的先选可都是互相或者施工中的两个项目形成先行必要的条件,那么这种应用场景下的图必须是无环图。 AOV网(Activity On Vertex Network):用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的...

2020-04-01 11:12:13 19 0

原创 数据结构学习之---图的代码实现

图的基本概念 图:是由顶点的集合及顶点之间的关系集合(边)组成的一种数据结构。 Graph=(V,E);(V表示顶点,E表示边) 两个顶点之间没有方向,称这条边为无向边。组成的图为无向图。 如果任意两个顶点之间都存在边,则称该图为无向完全图。具有n个顶点的无向完全图有n(n-1)/2. 顶点之间...

2020-04-01 11:05:36 15 0

原创 算法学习---kmp算法详解

kmp算法 先说怎样引出的kmp算法 之前用的都是朴素模式匹配算法,它的基本思想就是: 即从主串的第一个字符开始匹配,一直到最后匹配不上的话,则回到主串的第二个字符进行匹配。就这样一直循环,直到找完所有主串,返回结果。 因为传统的字符串匹配算法会进行很多重复的运算,复杂度太高。所以就引出了km...

2020-04-01 10:59:05 17 0

原创 数据结构---树(用C++代码实现)

树 基本概念 分类: 1)空树. n=0时称为空树 2)非空树. 特点: (1)有且只有一个特定的称为根的结点. (2)其余结点分为m个互不相交的有限集,并且称为根的子树. 树的深度:树中结点的最大层次称为树的深度或高度. 结点的度:结点拥有的子树数称为结点的度. 二叉树:由一个根结点和...

2020-04-01 10:48:26 59 0

原创 Go语言学习笔记---函数的详细用法

文章目录函数声明函数函数变量---把函数作为值保存在变量中匿名函数---没有函数名字的函数 函数 函数是组织好的、可重复使用的,实现单一或者相关功能的代码段,其可以提高应用的模块性和代码的重复利用率。 函数本身可以作为值进行传递 支持匿名函数和闭包 函数可以作为接口 声明函数 func ...

2020-03-31 22:44:00 32 0

原创 Go语言笔记---流程控制

条件判断 正常用法,和C语言不同,if后面不需要加括号 ten :=11 if ten>10{ }else{ } 特殊写法: //Connect()是一个带有返回值的函数,err:=Connect()是一个语句。 //err!=nil才是if的判断表达式 if err:=Connect...

2020-03-23 18:14:29 15 0

原创 Go语言学习笔记---list的基本使用

列表—可以快速增删的非连续空间的容器 1.初始化列表 变量名 :=list.New() var 变量名 list.List 2.在列表中插入元素 双链表支持从队列前方或者后方插入元素,分别对应的方法是PushFront和PushBack. 这两个方法都会返回一个*list.Element结构...

2020-03-22 08:31:02 22 0

原创 Go语言学习笔记---映射(map)的基本使用

map—建立事务关联的容器 应用场景:需要使用任意类型的关联关系时,需要用到映射。如学号和学生,名字与档案。 底层实现:使用散列表实现。 散列表实现,所以查找时间复杂度为O(1),最坏情况为O(n),n为元素总数。 1.添加关联map并访问关联和数据。 定义: map[keyType]Val...

2020-03-22 08:08:00 14 0

原创 Go语言学习笔记----切片

切片—动态分配大小的连续空间 Go语言切片内部结构包含地址、大小和容量。切片一般用于快速地操作一块数据集合。

2020-03-21 18:39:20 27 0

原创 Go语言学习笔记------字符串练习实例

Base64编码—电子邮件的基础编码格式 Base64编码是常见的对8bit字节码的编码方式之一。 Base64编码可以使用64个可打印字符来表示二进制数据,电子邮件就是使用这种编码。 Go语言标准库自带了Base64编码算法。示例如下: package main import ( "...

2020-03-21 08:39:51 13 0

原创 Go语言学习笔记-----数组

数组----固定大小的连续空间 数组:一段固定长度的内存区域。 数组声明时就确定,使用时可以修改成员,但是数组大小不可变化。 声明数组 数组声明格式如下: var 数组变量名 [元素数量]T T表示任意基本类型,包括数组本身。当类型为数组本身时,可表示二维数组 例如: var...

2020-03-17 22:05:16 10 0

原创 Go语言小示例----输出正弦(Sin)图像

设置背景色 //图片的大小 const size = 300 //根据给定的大小创建灰度图 pic := image.NewGray(image.Rect(0, 0, size, size)) //遍历每个像素 for x := 0; x < size; x++ { for...

2020-03-16 18:52:04 51 0

原创 C++11新特性知识点整理

c++11有哪些新特性? 关键字及语法: auto 关键字:编译器可以根据初始值自动推导出类型。我们不必费心去推导复杂表达式的类型。 但是需要注意几点: 使用auto关键字的变量必须进行初始化。 auto关键字不能用于函数传参以及数组类型的推导。(数组类型会推导为指针) 可能存在二义性,例如,a...

2020-03-15 22:59:52 24 0

原创 秋招面试C++开发不得不看的面试题2
原力计划

c++中类成员的访问权限? c++通过public,protected,private三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的,受保护的,私有的,被称为成员访问限定符。 public关键字,该访问属性下数据成员、成员函数是对所有用户开放的,所有用户都可以调用。 prot...

2020-03-15 22:51:09 66 0

原创 C++多继承下的内存模型

多继承下的内存模型?

2020-03-15 22:36:02 17 0

原创 设计一个不能被继承但能正常使用的类.

class A; class final { friend class A;//class关键字不可省略,否则在g++中不能编译通过 private final() {} }; class A : virtual public final { public: A() {} }; c...

2020-03-15 22:26:59 17 0

原创 不再怕被面试官问源码到可执行的过程

预处理 主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下 1、删除所有的#define,展开所有的宏定义。 2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。 3、处理“#include”预编译指令,将文件内容替换到它的位...

2020-03-15 22:18:08 20 0

原创 秋招面试C++开发不得不看的面试题1

c语言和c++的区别? (1)c语言是面向过程的程序设计语言(面向过程就是分析出解决问题所需要的步骤、过程,然后用函数将这些步骤和过程实现);c++是面向对象的 程序设计语言(面向对象是把构成问题的事务分解成各个对象,并且考虑如何建立对象模型。c和c++最大的区别就是解决问题的方法不一样) (2)...

2020-03-15 22:12:17 89 0

原创 C++面试高频题---实现STL的shared_ptr指针

实现shared_ptr指针 一般来说,实现一个shared_ptr需要实现这几个操作: 1.构造函数,进行初始化操作。 2.拷贝构造函数,让拷贝的shared_ptr的引用计数进行加一操作 3.重载->操作符,得到对应的对象指针。 4.重载*操作符,得到对应的对象。 5.重载=操作符,需...

2020-03-15 21:18:31 33 0

原创 Go语言学习笔记----基本语法与使用

变量 变量声明的基本样式 var a int //整型类型 var b string //字符串类型 var c []float32 //声明32位浮点切片类型,表示由多个浮点类型组成 var d func() bool //返回值为布尔类型的函数变量 var e struct{ x in...

2020-03-15 21:09:30 32 0

原创 Go语言学习笔记----基本词法和使用

基本词法 Go语言的词法元素分为5类:标识符、关键字、操作符、分隔符、字面量。 注意: 1.和c语言不同的是Go语言中不需要显示地插入分号,在必要时,Go语言会自动为代码插入分号以进行语句分隔。 2.Go语言源代码必须由Unicode编码规范的UTF-8编码格式进行编码。 标识符 标识符是由若干个...

2020-03-15 10:11:55 48 0

原创 Go语言环境配置 Sublime Text+golang+gocode+margo详细过程及解决问题的方法

一、安装git 因为在之后安装gocode和margo需要用到git。git的安装教程可以看这里 二、安装golang 官方下载地址:go官方下载 如果进不去的话,在网上找一下,挺好找的,我选择的是 :go1.4.2.windows-amd64.msi,下载到指定的目录,然后安装,安装完成后开始设...

2020-03-12 11:50:46 45 0

原创 Go学习笔记1----认识Go语言

一、Go语言的起源 Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的计算机工程师:Robert Griesemer,参与...

2020-03-12 10:38:47 35 0

转载 内存对齐宏NGX_ALIGN的解释

内存对齐的一个宏:#definengx_align(d,a)(((d)+(a-1))&~(a-1)) 以前对于这个宏有讨论过,不过似乎都讲得很模糊,作为一个知识点不应该有模糊 这个宏的目的是:将地址值调整为下一个边界上。 先问问自己:我应该怎么去实现这个功能呢? 假设: addr = 0...

2019-05-10 08:54:21 101 0

原创 数据结构------哈希表

传统的查找都是通过"比较"来实现的 . 比如说,顺序查找是"等于"和"不等于"来比较. 改进一些的方法,就是折半查找,二叉排序树,B-树查找,通过">","<",&quo...

2019-04-25 19:54:33 78 0

原创 动态规划---最长不下降子序列(简洁)

问题描述: 求一个数列的最长不下降子序列. 设有由n个不相同的整数组成的数列,记为: a(1),a(2),...,a(n)且a(i)<>a(j) (i<>j) 若存在i1<i2<i3,...,<ik且有a(i1)<a(i2)<...<a(...

2019-04-20 10:49:19 1021 0

原创 动态规划---01背包问题详解

与利润有关的背包问题. 问题描述: 一个商人带着一个能装m千克的背包去乡下收购货物,准备将这些货物卖到城里获利. 现有n种货源,且知第i种货物有wi千克,可获利pi元.请编写算法帮助商人收购货物,以获取更高的利润. 算法思路: 我们可以将商品逐个放进去.每次求得重量允许范围内的最大利润,后面放进...

2019-04-19 18:00:47 1347 1

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