对码当歌,猿生几何?
#最热 #最新

Go扩容

切片扩容容量如果期望的容量是当前容量的两倍则使用期望容量如果期望容量小于1024则扩容到当前容量的2倍如果期望容量大于1024则扩容当前容量的25%直到满足当前容量需求出触发条只有添加新元素后的cap不满足时才会触发扩容, 扩容后返回一个新的slice结构体处理方式slice=append(slice, one)        扩容后新的slice结构体赋给原sliceappend(slice, one)        则返回一个新slicehash扩容初始化当map中的桶的数量多于24时才会有溢出桶的存在,数量为2^B-4个,B为正常桶的数量hash桶最多存储8个对象,如果超出则需要存储在溢 查看全文

jzoj 6278. 2019.8.5【NOIP提高组A】跳房子

        nblogs-markdown">Description详见OJSolution看完题后第一反应是倍增。由于有修改操作,就尝试着打了个和昨天一样,(但是是假的)启发式倍增。结果被出题人无意中狂怼,(MLE0)(超了一点点),减小空间后(TLE25)。。。(其中一个)正解是线段树。我们对于一个区间([l,r])(线段树内编号为(x)),维护一个(t[x].tov[]),(t[x].tov[i])表示从第(l)列的第(i)行会走到第(r + 1)列的第几行。可以先预处理一遍,求出所有的(t[x].tov[i])。设当前的位置为((now[0],now[1]))对于查询操作:我们可以尝试着分块。对于步数(k),如果小于等于(m - now[1] +1)的,就直接用线段树跳。否则的话,我 查看全文

如何使用gitlab自建golang库

        nblogs-markdown">这里以go mod方式建立golang基础库一.gitlab创建项目golib地址为gitlab.xxx.com/base/golib示例如下go mod初始化命令go mod init golib二、如何下载1. 先关闭GOPROXYexport GOPROXY=""2. 替换git的https为ssh,避免下载包的过程让输入密码git config --global url."git@gitlab.eoffcn.com:".insteadOf "https://gitlab.eoffcn.com/"3.执 查看全文

Tcp协议介绍

前情提要:根据域名建立tcp链接之前要做两件事情,1 根据arp协议找到网管mac地址 2 通过dns服务器解析出域名的Ip地址,解析出域名的Ip地址之后就可以建立tcp链接了。tcp协议三个特点:1 实现可高传输 2 实现流量控制 3 避免网络拥塞tcp首部:   序号:表示传输数据第一个字节 是整个数据中的第几个字节 确认号:表示下一个链接过来的传输数据的第一个字节 是整个数据中的第几个字节 URG:值为1时表示数据不用进入TCP缓存池排队,直接发送给接收端 ACK:表示确认号码是否有效,0无效 1有效  SYN:值为1时表示发起会话请求的标识,其他为0后者不传(一般用于tcp握手阶段) PSH:值为1时表示接收端要提前提交给应用程序,不要进入TCP缓存池& 查看全文

Git详细学习教程

作者:gafishhttps://github.com/gafish/gafish.github.comGit简介Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具。2013年,淘宝前端团队开始全面采用 Git 来做项目管理,我也是那个时候开始接触和使用,从一开始的零接触到现在的重度依赖,真是感叹 Git 的强大。Git 的api很多,但其实平时项目中90%的需求都只需要用到几个基本的功能即可,所以本文将从 实用主义 和 深入探索 2个方面去谈谈如何在项目中使用 Git,一般来说,看完  查看全文

SSLOJ 1338.逃亡路径

题目题目描述由于不能与Garfield和睦相处,Odie决定逃亡。不幸的他逃到了一个矩形湖泊。湖泊的长为N,宽为M,初始时Odie位于位置(1,1)。Garfield想要知道可怜的Odie有到达位置(N,M)的最短路径条数(不能跳出湖泊边界)。另外,神奇的Odie移动方式类似国际象棋的骑士。 输入两个整数N和M,表示湖泊的长和宽。输出一个整数,表示最短路径的条数(模9901输出即可)。输入样例复制3 3输出样例复制2说明对于50%的数据,N ≤ 5,对于100%的数据,N ≤ 100。 分析直接最短路?但记录路径要开数组 代码  1 #include<iostream> 2 #include<queue> 3 #inc 查看全文

c#的dictionary为什么在扩容时会以素数扩容

  今天在看dictionary时,看到他在扩容时会以大于其两倍的最近素数大小来扩容,就思考了一下。  因为dictionary是基于hash表的,hash后转正数后会去取模,所以我的思路就转到了是否用素数取模更优越,记录一下我的推断过程:  最终的桶的index = key%m = key - xm = key - f(key/m)m。 这里的 f 函数用于向下取整。可以看到,最终结果是等价于key - f(key/m)m的。那么我们就以进来的key = 2n(即2的倍数),桶为4来举例。那么结果为 2n - f(2n/4)*4,简化后是2(n - f(n/2)*2)。可以看到这其实就是n - f(n/2)*2的两倍,而n - f(n/2)*2则是key = n装进长度为2的桶的公式,因此可以知道在这种情况下,它退化为了长度为2的桶。而又因为key 查看全文

数学建模中 时间序列典型分解模型 matlab实现

周期项之和为0代码:%时间序列的典型分析式 %数据来源网络 x=[9007,8106,8928,9137,10017,10826,11317,10744,9713,9938,9161,8927,...   7750,6981,8038,8422,8714,9512,10120,9823,8743,9129,8710,8680,...   8162,7306,8124,7870,9387,9556,10093,9620,8285,8433,8160,8034,...   7717,7461,7776,7925,8634,8945,10078,9179,8037,8488,7874,8647,...   7792,6957,7726,8106,8890,9299,10625, 查看全文
加载更多

js使用protobuf——支持web端交互使用

ProtoBuf简介Protocol Buffer的简称。Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式,适合用于数据存储,作为不同应用、语言之间相互通信的数据交换格式,序列化后的数据为二进制数据(pb格式的数据),类比XML、JSON。protobuf最先支持C++ C# Go JAVA Python PHP语言,最近发布的代码包又支持了JavaScript,今天就来谈下,js怎么使用protobuf。官网地址 https://developers.google.com/protocol-buffers/安装protobuf编译器从github上下载编译器源码安装包,https://github.com/protocolbuffers/protobuf/releases 编译安装, 目前仅支持unix类型的系统。定义 查看全文

(新手上路)nginx运行报错:could not open error log file和mkdir fail

问题:nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) 2018/08/12 00:01:05 [emerg] 1977#0: mkdir() "/usr/local/nginx/client_body_temp" failed (13: Permission denied)分析:error.log 日志记录文件 查看全文

Docker 报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon r

一、问题描述Centos7.4查看docker的本地镜像,结果发现报错[root@hadoop Jpress]# docker images Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?二、问题原因根本原因是docker服务没有开启。是因为机器重启,所以docker服务没有启动。三、解决办法开启docker服务systemctl start docker 查看: docker images REPOSITORY &n 查看全文

golang正则表达式的使用详解

正则表达式是一种进行模式匹配和文本操纵的功能强大的工具。正则表达式灵活、易用,按照它的语法规则,随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符组合。使用正则表达式需引入"regexp"包,通常还需与"strings"包配合使用,推荐一篇《Go strings 字符串处理包常用方法详解》链接地址本文主要介绍regexp包下一些常用方法的使用方法总结一、基础知识判断在 b 中能否找到正则表达式 pattern 所匹配的子串pattern:要查找的正则表达式matched:返回是否找到匹配项err:返回查找过程中遇到的任何错误此函数通过调用 Regexp 的方法实现//b:要在其中进行查找的 []byte func Match(pattern string,&nbs 查看全文

Flink开发中遇到的问题及解法

1. 当Source是Kafka的时候,如何设置Source Operator的并发度?如果没有指定,Source Operator的个数与集群中的TaskManager的个数相等。如果手动设置,建议使用的slot个数=Kafka Partition的个数/TaskManager的个数。此时,Slot的个数需大于等于2.因为其中有一个Source Operator。也不建议在一个Slot中启用多线程。2. Barrier如果丢失了怎么办?因为Barrier是从Source开始周期性的发送的,所以过一段时间未被标记为阻塞的input channel会收到下一个checkpoint的barrier,这时Flink会进行比对,发现如果当前的检查点没有完成,但下一个checkpoint已经过来了,那么Flink会放弃当前的checkpoint,转而使用下一个 查看全文

IDEA如何执行maven命令进行打包编译及常用命令

前提条件:maven配置环境变量。在保证环境变量配置没问题的情况下执行过程出现mvn不是内部命令类似的错误,建议重启编译器或者命令窗口。执行maven命令,方式一:   在IDEA主界面左下角找到 Terminal 点击进入,直接输入想执行的命令即可。 执行maven命令,方式二:   像配置tomcat一样,找到如图 Edit Configuration 选项,点击进入后在加号出找到 maven 选项,然后在 Command line 处输入要执行的命令即可。  注意,方式一执行maven命令要加 mvn 前缀,方式二因为本身就是添加maven命令模块,所以不用加 mvn 前缀即可 常用maven命令总结:mvn -v //查看版本 mvn archetype:create // 查看全文

Android Multidex正确使用方式(你可能也会遇到的坑)

一、概述Android 应用 (APK) 文件包含 Dalvik Executable (DEX) 文件形式的可执行字节码文件,其中包含用来运行您的应用的已编译代码。Dalvik Executable 规范将可在单个 DEX 文件内可引用的方法总数限制在 65,536,其中包括 Android 框架方法、库方法以及您自己代码中的方法。在计算机科学领域内,术语千(简称 K)表示 1024(或 2^10)。由于 65,536 等于 64 X 1024,因此这一限制也称为“64K 引用限制”,详细介参考谷歌官方配置文档。谷歌官方配置使用文档二、Multidex使用简单配置// 1. Gralde 配置android {     defaultConfig&n 查看全文

二叉树的Morris遍历

二叉树的普通遍历算法有很多,但它们都无法做到额外空间复杂度O(1),因为它们总要用到栈来保存信息,才能够从下层回到上层。这里介绍Morris遍历,能够做到时间复杂度为O(n),额外空间复杂度为O(1)。Morris中序遍历Morris遍历其实就是利用了树中大量的null指针。如下图,我们现在先来考虑中序遍历,对于节点4,什么时候会打印它呢?由中序遍历的序列得知,在节点4的左子树都打印完毕后,才会轮到节点4,接着就是节点4的右子树了。因为节点4的左子树最后一个打印的节点是左子树的最右节点3,那么我们先把这个节点的right指针指向节点4,当打印到该点时,不就可以顺着右指针回到节点4了。所以Morris中序遍历的流程大概如此:⑴对于一个节点cur,找到它左子树的最右节点,看这个节点的right指针是null还是指向cur。⑵如果是null,说明左子树还没 查看全文
加载更多