自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想还是要有的

没有人能一开始或一直正确,但只要认真努力,我相信一切都会越来越正确。

  • 博客(64)
  • 资源 (4)
  • 收藏
  • 关注

原创 【数据结构】跳表(skiplist)的原理及Golang实现

跳表(skiplist)是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,实现插入、删除、查找的复杂度均为O(logN),他是一种可以代替平衡树的数据结构。LevelDB的核心数据结构是用跳表实现的,redis的sortedset数据结构也是有跳表实现的。(参考维基百科:https://en.wikipedia.org/wiki/Skip_list)其结构如下图所示:一、查找在如下链表中查找x从最上层的链(S3)的开头开始,假设当前位置为p,它向右指向的..

2020-07-07 17:20:25 530 1

原创 【算法】剑指 Offer 35. 复杂链表的复制

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]示例 3:输.

2020-06-22 17:55:50 295

原创 【算法】剑指 Offer 26. 树的子结构 和 面试题 04.10. 检查子树

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ \4 5/ \1 2给定的树 B:4/1代码:func isSubStructure(A *TreeNode, B *TreeNode) bool { return (A != nil && B != nil) && ...

2020-06-19 20:27:44 252

原创 【算法】剑指 Offer 34. 二叉树中和为某一值的路径

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [...

2020-06-19 20:13:36 158

原创 【算法】面试题56 - I. 数组中数字出现的次数

题目描述:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]*限制:2 <= nums <= 10000先考虑上述问题的简单版本:一个数组里面只有一...

2020-06-18 19:57:59 202

原创 【读书笔记】《Go语言高级编程》——柴树杉,曹春晖

这本书并不适合初学者阅读,适合对Go语言的应用有一些心得,并希望能够深入理解底层实现原理或者是希望能够在Web开发方面结合Go语言来实现进阶学习的技术人员学习和参考。第一章:语言基础。1、Go的基因来自CSP理论(贝尔实验室)、面向对象和包的特性、C语言;2、数组、字符串和切片三者是密切相关的数据结构。这3种数据类型,在底层原始数据有着相同的内存结构,在上层,因为语法的限制而有着不同的行为表现。字符串底层数据也是对应的字节数组,但是字符串的只读属性禁止了在程序中对底层字节数组的元素的修改。切片的行为更为

2020-06-18 19:49:15 737

原创 【教程】golang使用protobuf

有两种包可以选择:goprotobuf(go官方出品)和gogoprotobuf。gogoprotobuf完全兼容google protobuf,它生成的代码质量和编解码性能均比goprotobuf高一些。1.安装protoc首先去 https://github.com/protocolbuffers/protobuf/releases 上下载protobuf的编译器protoc,wind...

2019-12-12 10:05:52 591

原创 【面经】蘑菇街电话面试

复习好几天,终于等来了蘑菇街电话,面试。本来信心满满,却被面试官问的一脸蒙蔽首先自我介绍;然后直接问做过的项目,大概介绍项目后,直接告诉我:我们后端开发用java做,C/C++只能做客户端搜索方面的东西。接下来(面试官提zhaung问bi)1、做过的ACM题中印象最深的一道题2、KMP算法怎么求next数组 数据结构学过,具体代码忘了,大概记得3、多线程中锁的种类(锁还有分类,难道锁住的程度不一...

2018-05-31 17:54:48 3100

转载 布鲁姆过滤器

布隆过滤器是一种数据结构,快速和节省内存,能用于判定一个元素是否存在于一个集合中。这种效率的代价是Bloom filter是一种概率数据结构,元素不是绝对的在组里或可能在组里。Bloom filter的基本数据结构是一个位向量。图1:布鲁姆过滤器散列图如图1:布鲁姆过滤器,由一个长度为m(=18)的数组(初始值都为0)和k(=3)个hash 函数组成,图中的元素x,y,z,判断为“可能”存在于集合...

2018-05-31 17:23:55 1819

原创 趋势科技笔试编程题

题目描述:给定一个由小写英文字母构成的字符串S,求不含重复字母的子串的最大长度^_^题目记得不大清楚了。。。例如:输入:abcde输出:4#include&lt;stdio.h&gt;#include&lt;cstdio&gt;#include&lt;string&gt;#include&lt;cstring&gt;#include&lt;string.h&gt;#include&lt;...

2018-05-19 14:33:23 3249

原创 python web 虚拟环境+数据库 配置

1、虚拟环境 安装:pip install virtualenv 创建:virtualenv TestEnv2、数据库相关安装 : mysql-pythonwindows下需要安装 PyMySQL-0.7.11-py2.py3-none-any.whl安装 flask-sqlalchemy安装 flask_script安装 flask_migrate初始化项目环境(项目目录) python ma...

2018-05-08 09:46:37 578

原创 【工具】git常用命令

git initgit addgit commit -m "注释"git log //查看以前版本git reflog //查看历史提交git checkout -- readme.txt //让这个文件回到最近一次git commit或git add时的状态,工作区误删可以从版本库恢复git status //查看暂存区工作区git reset HEAD file //可以把暂存区的修改...

2018-05-08 09:44:22 235

转载 python实现pdf转word/txt

依赖包:pdfminer3k可以通过pip安装;也可以到官网https://pypi.python.org/pypi/pdfminer3k下载,解压,进入文件夹,输入命令setup.py install安装软件。源代码#!/usr/bin/python# -*- coding: utf-8 -*-import sysimport importlibimpo

2018-04-16 15:17:20 16050 5

原创 golang编译器源码安装

安装环境及准备Ubuntu 16.04LTS下载go编译器源码:国内地址源:https://dl.gocn.io/     百度云地址:https://pan.baidu.com/s/1Xh-V2Cy-fgEcgRMZdoyNCA 密码:epik在这里选择源码的方式安装,在安装go的时候是需要gcc的,所以你的linux系统需要先安装gcc。如果你直接安装1.8版本时会出现提示&gt;=1.4 的...

2018-04-16 12:17:58 1861

原创 LInux低级IO和高级IO

打开文件int open(const char *path, int access,int mode)FILE *fopen(char *filename, char *mode)open和fopen的区别:前者属于低级IO,后者是高级IO。前者返回一个文件描述符,后者返回一个文件指针。前者无缓冲,后者有缓冲。前者与 read, write 等配合使

2018-04-09 13:16:14 1139

原创 Nginx配置(静态资源部署)

主文件:(/etc/nginx/ngnix.conf)需要修改的地方都已加注释,其他的不需要修改# For more information on configuration, see:# * Official English Documentation: http://nginx.org/en/docs/# * Official Russian Documentation: ht

2018-01-01 09:46:37 2953

原创 项目开发心得体会

最近做了个项目,写一个图文直播平台,听上去貌似很简单哈,可事实并不是这回事儿啊,我也是第一次做项目,经历了一波又一波的难点,至今项目尚未完成,处理测试阶段。项目开始于四周前,因项目需要用python的Flask框架开发,只会python简单语法的我开始学习flask,跟着视频一步一步学,大概学了一周多,然后就做了个小的网站Demo,同时这两周也在确定我们的项目需求。然后第三周,项目启动,我负责

2017-12-10 09:21:11 12140 1

转载 项目开发步骤

1、需求分析需求分析是项目中比较重要的一个环节,需求一旦确定,项目负责人或者技术人员务必与客户确认产品细节,最好可以签好合同之类的书面证明,以防后期增加工作量。2、可行性分析可行性分析一般分为商业可行性分析和技术可行性分析。商业可行性由客户和项目负责人对市场、产品前景评估;对于开发人员来说,主要是技术可行性分析,需要有丰富经验的技术人员对所需技术、完成时间进行评估并确认。

2017-12-08 14:59:33 830

原创 cJSON使用方法

下载链接:点击打开链接核心文件:cJSON.h、cJSON.c编译链接:gcc cJSON.c test.c -o a -lm #注意后面的连接lm库,必选项

2017-12-04 18:27:48 886

原创 flask sqlalchemy删数据报错Object '<Mydata at 0x720d710>' is already attached to session '1' (this is '3')

sqlalchemy.exc.InvalidRequestErrorsqlalchemy.exc.InvalidRequestError: Object '' is already attached to session '1' (this is '3')结论:两个不同的db交叉混用导致问题,根据报错也可看出,要操作的对象已经隶属于会话1, 而

2017-11-29 18:15:13 2060

原创 Flask学习笔记之钩子函数(hook)

### 钩子函数(hook):1. before_request:    *在请求之前执行的    *是在视图函数执行之前执行的    *这个函数只是一个装饰器,他可以把需要设置为钩子函数的代码放到视图函数执行之前来执行2. context_processor:    *上下文处理器应该返回一个字典。字典中的`key`会被模板中当成变量来渲染。    *上下文处理器中返

2017-11-24 20:15:39 1605

原创 Flask学习笔记之g对象

### 保存全局变量的g属性:g:global1. g对象是专门用来保存用户的数据的。2. g对象在一次请求中的所有的代码的地方,都是可以使用的。

2017-11-24 20:14:43 2935

原创 Flask学习笔记之cook和session

### cookie:1. `cookie`出现的原因:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,

2017-11-24 20:13:13 776

原创 Flask学习笔记之数据库

### Mac和Windows下数据库的安装:1. Mysql为例2. https://dev.mysql.com/downloads/mysql/3. Mac上安装Mysql很简单,直接一顿下一步安装就可以了。4. 设置初始化密码的命令是:   ```   mysqladmin -uroot password [password]   ```5. windows:

2017-11-24 20:11:12 655

原创 经典同步互斥问题之读者—写者问题

问题描述:第一次看到这个问题的时候,感觉很简单,不屑于看,然而当我上手敲代码的时候就懵逼了:道理很清楚很明白,可是代码实现确不是那么简单,想了一天都没想通。第二天参考了一篇文章,才理清思路。贴上我认为最简短的而且还能达到题目要求解决所给问题的代码://Test.javaimport java.io.BufferedReader;import java.io.IOExcepti

2017-11-22 17:48:00 992

原创 关于tree命令的编写

目标:编写一个命令tree,读取某一目录下所有目录或者文件,把他们的信息保存到链表当中,打印出来,再把链表倒置再输出一遍。#include //标准输入输出#include //C标准函数库#include //Unix类系统定义符号常量#include //定义了很多宏和open,fcntl函数原型#include //读取文件夹内容所需的头文件#include typedef

2017-11-18 15:27:48 737

原创 .c文件生成.cgi文件

方法一:(Hello.c文件)方法二:(base.h  cgic.c  cgic.h  file_upload.c多文件同时编译)

2017-11-15 16:25:26 2273

原创 HDU 1072 Nightmare

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1072题意:给一个矩阵,从2走到3,倒计时从6开始,看是否在倒计时结束前到达3,输出最小步数。规则:1可以走,0不可以走,遇到4,计数器重置为6。思路:这道题目看似不难,我却做了好久,用的方法是DFS记忆化搜索,刚开始做只考虑了当走过的点的时间小于当前时间时,这个点就可以重复走,Wron

2017-07-23 11:40:15 332

原创 Mininet网络仿真工具

一、Mininet简单介绍:Mininet网络仿真工具基于 linux Container架构。最重要的特点:几乎可以迁移到真实的硬件环境,支持 OpenFlow、OpenvSwitch 等软定义网路部件。 Mininet可以模拟真实网络,主要是用到了Linux 内核的namespace机制,通俗来说,namespace机制就是可以给模拟网络中的每一个虚拟设备分一个空间,各个虚拟设备之间彼此没

2017-07-21 13:37:07 6389

原创 SDN开发环境搭建

•平台–Ubuntu+Floodlight+Mininet–虚拟机软件,使用virtualbox–Floodlight,作为OpenFlow环境的控制器–Mininet的虚拟机,用来模拟出OpenFlow交换机–wireshark抓包软件一、在虚拟机机上安装Ubuntu linux(所用版本为Ubuntu 15.04)网络为桥接模式(ip):

2017-07-16 18:29:31 2834

原创 第一个服务器/客户端模型(非多线程)

服务器:#include "stdafx.h"#include #include "winsock2.h"#pragma comment (lib, "ws2_32.lib")int _tmain(int argc, _TCHAR* argv[]){ WSADATA wsaData; SOCKET sockfd,sockfd1; if(WSAStartup(MAKEWORD

2017-07-11 22:44:45 441

原创 【模板】二分匹配

二分图的最大匹配、完美匹配和匈牙利算法从每一个未匹配顶点出发,找到和其有关系的点若该点未匹配,则建立匹配关系,若该点已经匹配,则寻找交替路,若存在增广路,把增广路中的匹配边和非匹配边的身份交换,通过不停地找增广路来增加匹配中的匹配边和匹配点。找不到增广路时,达到最大匹配(这是增广路定理)。(代码注释:判断最大匹配是否为m)#include#include#inclu

2017-07-02 21:19:39 335

原创 2017ACM省赛总结

正如老师所说,这次省赛结果略有遗憾,该做出来的题没有做出来,比如那个英语题,关于停车场的,在最后剩一个小时多点的时间,我权衡之下,选择看这道题,但是看了有二十分钟也没有看懂关键那两行,结合样例也不知道停车场收费方法,无奈放弃。也有其他的失误,不再列举。我反思后总结了几点原因:1、因平时太依赖百度翻译工具,致使英语语感太差;2、队员之间配合不够好:主要是遇到争执的时候,不能快速确定按照谁的方

2017-05-12 15:14:57 4757 2

原创 【模板】线段树

#include#include#includeusing namespace std;struct node{ int left,right; int max; node() { max=0; }}tree[1000000];int a[200000],ans;int Build(int left,int right,int

2017-04-28 10:54:31 343

原创 【模板】最小生成树prim算法

#includeusing namespace std;#define MAX 105#define MAXCOST 1<<30int map[MAX][MAX];int lowcost[MAX],mst[MAX];void prim(int n){ for(int i=1;i<=n;i++) lowcost[i]=map[1][i],mst[i]=0;

2017-04-07 09:26:22 335

原创 2017天梯赛总结

先说缺点吧:1、看题不仔细,有好几个很简单的题都是提交错了一次之后才发现问题;2、做题速度太慢,感觉没一点紧张感,比赛状态不好;总的来说,这次比赛有的题目太水,但是我花了大部分的时间,总时间就三个小时,后面难一点的题也没有时间去研究了,时间方面没有把握好,以后比赛要把握好时间,在一个就是加快做题速度,提高紧张感。

2017-03-26 21:27:08 1483

原创 HDU 2266 How Many Equations Can You Find

题目链接:戳这里题意:给一个字符串,向里面添加“+”或“-”,使之结果等于N。         先自己做了一遍,结果不对,最后发现是我考虑不周全,我的搜索过程,只加上或减去了运算符之后的第一个数字,导致最后结果少了一些(见示例)。正确的方法:搜索到每一位数字时,要加上或减去它之后的所有组合情况。最初的错误代码:#include#includeusing namespace st

2017-03-24 12:37:06 439

原创 HDU 1258 Sum It Up

题目链接:戳这里题目大意:给一个非递增有序数列,找到和为Sums的等式。分析:很显然这是一道搜索题,但是其中有几点需要注意:1、搜索路径的保存,刚开始我根本不知道怎样保存路径,纠结,。。用数组保存,满足条件时输出,然后回溯,有可以更新这个数组,神气。。   2、这个搜索过程是一个树形结构,其中搜索到同层节点值相同时,应剪枝,很重要。源代码:#include#include#in

2017-03-19 23:15:23 340

原创 HDU 1045 Fire Net

题目链接:戳这里题目大意:在一个矩阵(最大4*4)中放置大炮,有障碍的地方不能放,且大炮之间不能被打到(大炮只能向上下左右四个方向发射),当然,障碍物可以阻隔大炮。分析:很明显这是一道搜索题,刚开始想着跟八皇后类似,就联想标记,但是怎样判断与它同行同列是否有大炮,有大炮的话是否有障碍物阻隔呢。最后看了别人的博客,发现了更好的办法,依次对每一个点深搜,只需要判断这个点向上和向左有没有大炮或障

2017-03-17 15:45:02 369

原创 蓝桥杯 算法提高 c++_ch04_02_修正版

算法提高 c++_ch04_02_修正版  时间限制:1.0s   内存限制:256.0MB  【题目描述】  实现一个时间类Time。将小时,分钟和秒存储为int型成员变量。要求该类中包含一个构造函数,访问用的函数,一个推进当前时间的函数adv(),一个重新设置当前时间(即将当前时间设为00:00:00)的函数reset()和输出结果函数print()。注

2017-03-10 14:31:54 1327

Linux/Unix系统编程手册 源代码

Linux/Unix系统编程手册 源代码,官网下载,放心下载。

2017-11-18

Visio 2003 NS流程图

Visio 2003 NS流程图,放心使用,个性化,符合需求,简单清晰。 根据实际要求,把复用率高的模块存入模具中。

2017-11-06

算法艺术与信息学竞赛

算法艺术与信息学竞赛

2016-12-06

杭电离线题目

杭电离线题目 题库

2016-12-05

空空如也

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

TA关注的人

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