自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis源码阅读笔记-dict.h

dict.h在redis中,dict.h主要是hash的底层实现方式。在dict.h中主要是一些数据结构的定义,以及一些宏函数的定义相关的内容。哈希节点定义源代码中的dictEntry就是哈希节点的相关定义typedef struct dictEntry { void *key; //存放key值 union { //使用一个union存放value值 ...

2018-10-25 02:13:24 848

原创 redis源码阅读—adlist.c

adlist.cadlist.c文件中主要是一些双向链表的操作的实现。listCreate函数//listCreate函数类似于一个list的构造函数//直接通过zmalloc函数申请list大小的空间,并且将pre,next指针都置为NULL//另外,dup,free,match函数指针也设置为NULLlist *listCreate(void){ struct list ...

2018-10-24 02:12:37 425

原创 redis源码阅读笔记 - adlist.h

adlist.hadlist是redis中的双向链表。其实现也跟平常的双向链表大同小异,总体来说代码难度不高。//链表节点定义// listNode一个prev指针,一个next指针,分别指向节点的前段和后端// void* 存放了信息// 犹豫在c语言中没有template的存在,所以使用void*指针来实现typedef struct listNode { struct...

2018-10-22 00:51:01 267

原创 redis阅读 - zmalloc.c

zmalloc.c文件中主要是内存分配一些操作,其中主要是对C语言内存分配函数进行了一定封装,加上了一些其他的功能(如统计,异常处理等等)。总体来说还是十分简单的zmalloc&zcalloc在redis中,zmalloc函数是对系统malloc的一种封装。增加了内存统计的功能以下是zmalloc函数的源代码至于zrealloc,跟zmalloc十分类似,在此就不赘言了。void...

2018-10-21 01:48:05 260

原创 redis源码阅读——sds.c

sds.csds.c文件中,主要是一些sds的底层具体的实现,和一些对sds的操作。了解下sds底层的具体实现,可以加深我们对字符串的更深的理解。同时,一些内存分配、回收、扩展的一些方式也很值得我们学习。//这两个函数一个根据type返回size,一个根据size判断type,比较简单static inline int sdsHdrSize(char type) { switch...

2018-10-11 02:02:36 315

原创 # redis源码阅读笔记——sds.h

redis源码阅读笔记sds.hSDS是redis自己设计的一个可扩展动态字符串,它兼容C语言字符串的同时是二进制安全的。typedef char *sds;//将sds在本质上就是char * 但是,由于sds是二进制安全的,所以类似’\0’等字符都要求能够在sds中储存例如:对于一个char ch[] = “111\0111”那么这个ch输出的时候仅仅会输出111,因为’\0’...

2018-10-10 00:53:07 625

原创 Navicat Premium 12 破解

链接:https://pan.baidu.com/s/1O71hMgBGNDqQ-olSC7Qrmg 密码:q4b5下载破解文件,然后在破解文件中找到你下载的相应的版本 复制里面的文件 复制到Navicat Premium 的安装路径下 就ok了...

2018-06-21 10:17:10 707

原创 算法导论第二章复习笔记

// CLRS_CHARPTER2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <ctime>#include <cstdlib>using namespace std;

2018-06-02 17:16:29 233

原创 网易校招-合唱团

题目描述 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述: 每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整...

2018-05-28 16:16:08 248

原创 ubuntu 16.04 配置ssh免密登陆

本来要装Hadoop,三个结点,第一次用ubuntu 16.04 结果在配置ssh免密登陆的时候遇到了问题,本来是按照网上 随便搜的教程配置的,结果发现有问题,然后自己解决了 ,顺便记录一下。ubuntu自带的源是有问题,可能是国外的源,再加上我这边的网确实不好,安装openssh-server出问题, 到57%这里就不行了,加载不动了,所以果断换源。换源之前还是先备份一下之前的...

2018-05-23 22:34:17 3489

原创 生成不重复随机数的方法 --抽奖问题等

问题描述: 给定一个n,一个m 要求在1 ~ n这n个数字中,生成m个不重复的随机数。思路: 生成随机数大家都知道,C++中也提供了相关的函数——rand()。 但是问题中要求生成的是无重复的随机数,这里就需要对生成的随机数进行去重操作了。首选最直观的思路是可以使用set,利用set的无重复的性质对数字进行过滤。 算法如下: while (s.size() <...

2018-05-23 17:17:05 4589 1

原创 pycharm中使用Anaconda 部署python环境(含链接)

先附上链接两个,是我自己用的pycharm 链接:https://pan.baidu.com/s/1O5PixlPNpUw3RcxYbHHdBQ 密码:vgjy 下面是我自己用的Anaconda,版本是Anaconda2-5.0.1-Windows-x86_64 链接:https://pan.baidu.com/s/16jiiYDtH9pVZTz6Ix7FeIQ 密码:0yzm Anaco...

2018-05-15 17:56:16 11381

原创 LEETCODE解题记录——按层输出二叉树

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20...

2018-04-19 20:33:19 1683

原创 LEETCODE解题记录——二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶节点的最长路径上的节点数。解析: 题目的意思十分简单,就是求二叉树的树高。我们只需要从根节点开始依次向下搜索,并且每个节点保存以此节点为根节点的子树的树高,最后递归即可。代码如下所示:int maxDepth(TreeNode* root) { if (!root) return 0; ret

2018-04-19 17:09:45 357

原创 LEETCODE解题记录——对称二叉树

题目要求: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个

2018-04-19 16:38:01 229

原创 java内存模型,垃圾收集器

Java内存区域程序计数器:是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。Java虚拟机栈:与程序计数器一样,java虚拟机栈 也是线程私有的,他的生命周期与线程相同。虚拟机栈描述的是ja

2018-03-13 21:12:38 137

原创 斐波那契数列

斐波那契数列中:f(n)=0 (n=0)f(n)=1 (n=1)f(n)=f(n-1)+f(n-2) (n>1)这个不在赘述。是一个效率很低下的解法。因为重复计算太多。**时间复杂度为O(n)的解法**这种方法只是避免了递归的重复计算从下往上计算,根据f(0

2018-03-04 13:59:51 208

原创 用网页打开本地jar程序

之前写过一篇用网页打开本地exe程序的文章,可惜后来项目又有新的变动,有个老师的程序是本地jar的形式。于是老师要求我用本地打开jar包,于是,再写一篇关于网页打开jar包的文章用网页打开本地exe程序的文章链接点击打开链接接下来介绍:在放jar包的目录下,新建一个.bat文件.bat文件的内容如图所示。 记得一定要cd到 放置.bat文件的上一级目录。

2018-01-28 20:22:36 1906

原创 用网页打开本地exe程序

最近的项目因为是不同老师开发的,所以整合到一起很麻烦,需要用网页调用部分老师写的exe程序。本来以为不可实现,后来发现,实现也很简单。1、打开注册表 win+r在注册表的最上面HKEY_CLASSES_ROOT  右键——>新建——>项   项名称可以自己定义,这里我把名字命名为:zq点击zq右键新建——>项,依次建立 如图所示的项在空白处右键  新建——>字符

2017-12-29 12:58:41 21588 7

原创 servlet部分理解

Servlet的作用就是为java程序提供一个统一的web的应用规范,方便程序员可以用这种统一规范来编写程序关于他是如何工作的,简单来说:一个http请求的到来,容器将请求封装成servlet中的request对象,在request中你可以读到所有的http信息,然后取出来操作 ,最后再把数据封装成servlet的response对象,应用容器将respose对象解析之后封装成http res

2017-11-27 11:37:22 253

转载 java Queue中 remove/poll, add/offer, element/peek

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-10-29 11:31:23 166

原创 Leetcode之partition-list

题目如下:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the original relative order of the nodes in each

2017-10-14 15:40:22 176

原创 数据结构之单链表的基本实现

在数据结构的学习中,链表可以说是我们最早接触到的一种数据结构了(字符串和数组除外),在各大数据结构及算法书中,如CLRS,或者是清华大学版数据结构中,链表也是最早介绍的一种数据结构。它实现起来比较简单,同时能实现一些我们平时用数组难以实现的功能,很适合我们入手数据结构。下面我们简单来看看链表中最简单的一种,单链表的结构及其实现。链表是一种线性的数据结构,它由结点构成,每个结点由数据域和指针域组成。其

2017-10-07 21:38:28 438

原创 矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?          第一种是最后是由一个2*(n-1)的矩形加上一个竖着的2*1的矩形  另一种是由一个2*(n-2)的矩形,加上两个横着的2*1的矩形  因此我们可以得出,  第2*n个矩形的覆盖方法等于第2*(n-1)加上第2*(n-2)的方法。

2017-09-08 10:12:47 175

原创 变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。也就是说,这个青蛙跳到n级的台阶,那么这个青蛙的上一个台阶可能是从第1级、2级、3级、4级。。。。。n-1级跳上去。所以跳上n级台阶的跳发是f[1]+f[2]+f[3]+......+f[n-1]的和,然后再+1(直接从0跳到n级)package nowcoder;

2017-09-08 09:55:31 149

原创 从尾到头打印链表

输入一个链表,从尾到头打印链表每个节点的值。时间限制:1秒空间限制:32768K热度指数:316235package nowcoder;import java.util.ArrayList;import java.util.List;import java.util.Stack;class ListNode{ int val; ListNode next=null

2017-09-04 19:27:44 159

原创 替换空格

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。时间限制:1秒空间限制:32768K热度指数:366241 package nowcoder;public class no2 {public static String replaceSpace(StringBuffer st

2017-09-04 19:25:59 164

原创 二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。时间限制:1秒空间限制:32768K热度指数:408704这题的关键是首先把位置定义在第一行的最后一个数字,如果target小于这个数字,那么列数减去一,然后逐个查找,如果target大于这个数字,那么行数加一,继

2017-09-04 17:34:12 187

原创 动态规划之LCS最长公共子序列和最长公共子串

最长公共子序列的结构有如下表示:设序列X=1, x2, …, xm>和Y=1, y2, …, yn>的一个最长公共子序列Z=1, z2, …, zk>,则:若xm=yn,则zk=xm=yn且Zk-1是Xm-1和Yn-1的最长公共子序列;若xm≠yn且zk≠xm ,则Z是Xm-1和Y的最长公共子序列;若xm≠yn且zk≠yn ,则Z是X和Yn-1的最长公共子序列。packag

2017-08-31 20:34:31 242

原创 动态规划之矩阵连乘法

以两个矩阵为例,第一个矩阵A1为p*q,第二个矩阵A2为q*r,只有当第一个矩阵的列等于第二个矩阵的行时,两个矩阵才能相乘,这时我们称这两个矩阵是相容的,对于两个矩阵相乘,一旦矩阵的大小确定下来之后,那么所需执行的乘法次数就确定下来了,对于两个矩阵相乘,一旦矩阵的大小确定下来了,那么所需执行的乘法次数就确定下来了。那么对于两个以上的矩阵呢?是不是也是这样呢。实际上,对于多个矩阵相乘

2017-08-31 16:55:49 515

原创 ArcGIS API For JavaScript部署

1.  本机API配置Esri白皮书中给出了本地配置信息,一般是针对某一版本的API配置,例如3.3版本,不同版本之间的配置不是完全相同,文件夹有时候不同。通用的配制方法是查看API包中的配置页面。一般在library文件夹下的版本号文件夹内。如下图所示:打开安装页面如下图所示:在C:\Inetpub\wwwroot目录下创建arcgis_js_api文件夹,将解压

2017-08-26 10:54:51 489

原创 动态规划之钢条切割问题

钢条切割问题:某公司购买长钢条,将其切割为短钢条

2017-08-25 10:31:36 470

原创 分治策略之最大子数组问题

最大子数组,即子数组中的各个元素相加的和是所有子数组中最大的。假设最大子数组为【ai.......aj】则必然是以下三种情况:(1)、完全位于子数组A【low.........mid】中(2)、完全位于子数组A【mid+1.......high】中(3)、跨越了中点low代码如下:package lianxi;public class max_zia

2017-08-22 20:19:33 257 1

原创 windows server 2012R2 配置DNS服务器

选择“添加角色和功能”勾选DNS服务器安装成功后,旁边会显示出来DNS右键点击DNS->DNS管理器点击选择“正向查找区域”、选择是否允许动态更新可根据自己的需要来选择

2017-07-12 10:20:43 29523 1

原创 传递数据的两种方法GET和POST

用GET方式传递数据:GET方式比较有特点,通过GET方式提交的变量有大小限制,不能超过100个字符。它的变量名和与之相对应的变量值都会以URL的方式显示在浏览器的地址栏里,请求的数据会有长度限制,附加在URL之后,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输,所以,传递大而敏感的数据,一般不用此方式。

2017-07-03 21:49:07 1638

原创 ganglia监控物理机

分布式监控 工具Ganglia介绍与集群部署使用Ganglia来监控物理机Ganglia的监控包括gmond、gmetad以及一个web前端。gmond(GangliaMonitoring Deamon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上,gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很

2017-06-29 16:37:20 521

原创 php的抽象类和接口

1、抽象类:抽象类只能作为父类,因为抽象类不能被实例化,抽象类使用abstract关键字来声明格式如下:abstract class 抽象类名称{//抽象类成员变量列表abstract function 成员方法1(参数);abstract function 成员方法2(参数);}抽象类和普通类的主要区别在于抽象类的方法没有方法内容,而且至少包含一个

2017-06-25 20:58:42 355

原创 php中的构造方法和析构方法

php的构造方法__construct()是在实例化之前,最先执行的一个方法从php5版本开始,构造方法的名称必须以两个下划线开始具体的语法格式如下:function __construct(){//方法内容}一个类只能声明一个构造方法,构造方法中的参数是可选的,如果没有传入参数,就将使用默认参数为成员变量进行初始化__constru

2017-06-22 16:44:57 490

原创 php数组的合并

数组的合并:  array_merge()     两个数组的元素会合并成一个数组的元素数组的联合:  是指两个一维数组(一个作为关键字,一个作为数组元素值)联合成为一个新的联合索引数组1、数组的合并:例:$a = array(              'where' => 'uid=1',              'order' => 'uid',

2017-06-22 14:45:14 194

原创 php 数组中遇到的一些函数总结

1、遍历数组    for和foreach2、数组排序 sort()   rsort()  asort()  arsort()  krsort()详细介绍连接点击打开链接3、字符串与数组的转换    explode()  implode()explode()  按照一定的规则拆分数组中的元素implode()   把数组中的元素按照一定的连接方式转化为字

2017-06-22 09:38:39 139

imsdroid-2.544.836.apk

IMSdorid.apk. 在虚拟机上使用正常,考虑到很多用户不是很方便下载,分享一下。

2018-05-18

空空如也

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

TA关注的人

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