自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶琼州的代码小窝

Talk is cheap. Show me the code.

  • 博客(186)
  • 收藏
  • 关注

原创 剑指offer题解

引言  每年计算机相关专业的学生在校招时都需要刷一定量的算法题,我当时也不例外,不论春招找实习时还是秋招正式找工作时都刷了很多算法题,这些算法题在面试过程中还是有一定的作用的。本文就归纳了我总结的剑指offer目前所有的题解。由于本人刷题时不是很习惯写注释,如果大家有什么地方不太理解的话可以在题解下面留言,我看到的话会尽量给大家回复,这些题解都是采用C++语言编写,希望对正在找工作的同学有一点点...

2019-04-21 10:22:56 240

原创 CCF-CAP认证历年试题题解

引言 还记得上一次考CCF还是在大二的时候,不过那次成绩考的不够理想,导致现在读研的时候依然要花时间重拾算法来考CCF,坚持每日一题吧。由于本人刷题时很少写注释,如果大家有什么地方不太理解的话可以在题解下面留言,我看到的话会尽量给大家回复,这些题解都是采用C++语言编写,希望对正在备考CCF的同学有一点点帮助\(^o^)/~题解第十二次CCF认证:CCF 201712...

2017-10-27 09:00:19 2138 2

原创 二叉树的用法

C语言二叉树的用法

2017-04-28 09:24:06 444

原创 链表的基本操作

C++链表的基本操作

2017-04-28 09:16:40 512 1

原创 同步 Linux 时间

前言最近在工作中碰到这么一个问题:我们某台内网服务器的本地时间和 UTC 时间相差了一个多小时,由于该服务器没有联网,所以不能同步网络时间,但是我们部署在其上的某个服务通过时间戳来校验签名,签名算法设置的请求时间戳和当前时间不超过 30s,所以只能离线校准该服务器的本地时间。同步 Linux 时间修改当前时区将本地时区设置为上海,timedatectl set-timezone Asia/Shanghai。修改机器硬件时间把机器硬件时间校准为当前时间,hwclock --set --date="

2021-03-16 22:55:45 166

原创 Nginx 搭建离线文件服务器

前言最近在工作中有这么一个需求:我们给客户部署服务的机器不能访问外网,导致我们某个服务不能拉取公网图片资源。为了验证整套服务流程是否连通,只能在目标机器上部署一个文件服务器来代替公网资源来测试整套服务。部署 nginx 文件服务器离线安装 nginx联网机器上下载 nginx 安装包。安装包拷贝到目标服务器,安装 nginx,dpkg -i nginx_xxx.deb。查看 nginx 安装路径,whereis nginx。启动 nginx。修改配置文件nginx 会将 conf.d

2021-03-15 23:30:52 302

原创 Linux nslookup 命令

前言我们在工作时经常会查看某个 IP 或域名的 DNS 信息,查看当前 IP 绑定到了哪台机器上,或者当前域名是否解析正常。这里就要用到 nslookup 命令了。在使用 nslookup之前,先确保已经安装了它,nslookup 属于 bind-utils 包下一个命令。命令详解nslookup 命令主要用来查询域名的 DNS 信息。nslookup 有两种工作模式:“交互模式” 和 “非交互模式”。在命令行中直接输入 nslookup,无需输入任何参数即进入交互模式。命令全拼nslooku.

2021-01-31 15:24:06 752

原创 Leetcode-114-二叉树展开为链表

题目描述给定一个二叉树,原地将它展开为一个单链表。示例给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6题解前序遍历将二叉树进行前序遍历,获得各节点被访问到的顺序链表,遍历链表重组二叉树。package maintype TreeNode struct { Val int.

2021-01-27 22:31:07 119

原创 Docker Compose 详解

前言当我们想要同时启动一系列相互依赖的服务时,一个个依次并严格按照顺序启动就显得尤为繁琐。这时我们就可以用到 docker compose 来执行这一系列操作。ComposeCompose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose 您可以使用 YML 文件来配置应用程序需要的所有服务,然后使用一个命令就可以从 YML 文件配置中创建并启动所有服务。Compose 使用使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定

2021-01-02 20:40:54 607

原创 LeetCode——1365有多少小于当前数字的数字

题目描述给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i]。以数组形式返回答案。示例 1输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释: 对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。 对于 nums[1]=1 不存在比它小的数字。对于 nums[2

2020-12-28 23:09:05 85

原创 Git cherry-pick 命令

前言在我们日常开发的时候,经常会在不同的分支上切换出新的分支进行编码,当不小心切错了基准分支时,最后代码合并的时候可能会有冲突,或者是仅仅需要把某个分支的内容合并到另外的分支上时,我们就需要使用到 Cherry-Pick 功能了。命令详解cherry-pick 是 Git 版本控制工具中的一个命令,意思和它的名称一样,精心挑选,挑选一个我们需要的 commit 进行操作。它可以用于将在其他分支上的 commit 修改,移植到当前的分支。一个很常见的场景,就是想在某个稳定版本上,添加一个刚开发完成的版

2020-11-30 00:23:15 485

原创 Linux netstat 命令

前言在平时的开发过程中,我们会经常遇到查看某个端口占用的情况,一般我们会用到 lsof 和 netstat 这两个命令来查看端口占用信息。上一篇文章讲解了 lsof 命令,本文就来讲解另一个常用来查看端口信息的 netstat 命令。命令详解Linux netstat 命令用于显示网络状态,利用 netstat 命令可让你得知整个 Linux 系统的网络情况命令全拼netstat = network statistic语法格式netstat [-acCeFghilMnNoprstuvVwx

2020-11-08 19:59:15 183

原创 LeetCode——组合

题目描述给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]题解package mainimport "fmt"func main() { fmt.Print(combine(4, 2))}func combine(n int, k int) (ans [][]int) { tmp := []in

2020-10-26 23:40:20 80

原创 Linux lsof 命令

前言在平时的开发过程中,我们会经常遇到查看某个端口占用的情况,一般我们会用到 lsof 和 netstat 这两个命令来查看端口占用信息。在 linux 环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用.

2020-08-17 23:42:13 130

原创 Linux file 命令

前言Linux 中“一切皆文件”,任何事物都是以文件的形式存在,在 windows 环境下,我们一般情况下可以通过文件的后缀名来识别文件的种类,但是在 linux 环境下,文件名可以自由更改,这时我们就可以通过 file 命令来获取文件的类型信息。命令详解Linux file 命令用于辨识文件类型,通过 file 指令,我们得以辨识该文件的类型。语法格式file [-bcLvz][-f <名称文件>][-m <魔法数字文件>…][文件或目录…]参数说明-b  列.

2020-08-16 17:38:00 340

原创 Linux diff 命令

前言Linux 中比较两个文件是否一致有好几种方式,前面已经讲过了 cksum 命令来校验两个文件是否一致,还讲了利用 cmp 来比较两个文件是否有差异,今天来讲一下另一个比较文件差异的 diff 命令。命令详解Linux diff 命令用于比较文件的差异。diff 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。命令全拼diff = Difference语法格式diff [-abBcdefHilnNpPqrstT.

2020-08-13 00:17:35 226

原创 Linux cmp 命令

前言Linux 中比较两个文件是否一致有好几种方式,前面已经讲过了 cksum 命令来校验两个文件是否一致,今天来讲一下 cmp 命令。命令详解Linux cmp 命令用于比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则 cmp 指令会从标准输入设备读取数据。命令全拼cmp = compare语法格式cmp [-clsv][-i <字符数目&.

2020-08-10 23:22:11 642

原创 Linux chown 命令

前言Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。命令详解chown 命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。命令全拼chown = change owner语法格式chown [-cfhvR] [–help] [–version] user[:group] f

2020-08-09 23:27:43 156

原创 Linux nohup 命令

前言我们平时在远程服务器或者跳板机上执行命令时,如果由于长时间未操作导致服务端未响应,触发了防火墙的闲置超时断开的缺省机制,会导致之前执行的命令中断。命令详解nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。nohup命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录文件不可写,则输出重定向到 $HOME/nohup.out 文件中。命令全拼cksum = no hang up语

2020-08-03 23:05:29 254

原创 Linux cksum命令

前言最近女朋友要我把相机里旅游时拍的照片发给她,然后我就把照片传到百度云发给她了,她下载后就抱怨说百度云把图片压缩了,导致图片放大后看不清,我马上上百度云看了一下,发现文件大小没有压缩,于是我就把百度云下载的图片和我本地内存卡里的照片比对一下,看百度云是否把我的图片压缩了。这里就可以用到 cksum 命令来检查两个文件是否一致。命令详解Linux cksum 命令用于检查文件的 CRC(Cyclic Redundancy Check 循环冗余检验码)是否正确,确保文件从一个系统传输到另一个系统的过程中

2020-07-30 07:31:17 417

原创 LeetCode——不同路径

题目描述一个机器人位于一个 m x n 网格的左上角(起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个 7 x 3 的网格,有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释: 从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -

2020-07-30 00:35:33 77

原创 LeetCode——不同路径II

题目描述一个机器人位于一个 m x n 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。**说明:**m 和 n 的值均不超过 100。示例 1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍

2020-07-26 17:21:57 87

原创 ab压力测试

前言最近在工作中有这么一个需求:测试原子服务的 QPS 有多少,一种方式是用 Jenkins 跑压力测试,另一种就是今天要用的 apache bench (ab) 测试工具,ab 是用于对 Apache 超文本传输​​协议(HTTP)服务器进行基准测试的工具。压力测试这里就不展开讲 ab 的语法,直接讲 ab 进行压力测试的命令,详细语法大家可以参考ab官方文档在当前目录下新建 post.json 文件存放 json 格式的请求post.json: {“data”:{“uri”:“http://c

2020-07-22 07:43:47 188

原创 Dockerfile多阶段构建

前言我们在构建docker镜像时,希望最后得到的镜像越小越好,但是在构建时,总是会用到各种各样复杂的环境,大部分都是临时环境,只是为了生成对应的目标程序。比如我们经常会在OpenCV环境下编译图像处理类程序,但其实目标程序只需要用的之前生成的子程序就行,不需要引入中间用到的环境。这里我们就能用到Dockerfile多阶段构建,它可以把前面多个阶段生成的文件拷贝到下一个阶段使用,并且不引入之前用到的环境,这极大地解耦了我们的Dockerfile文件,而且最终可以得到一个极小的完整镜像。多阶段构建关于镜像

2020-07-12 23:46:34 456

原创 mongo导出数据

前言最近工作上遇到一个需求,需要给算法人员导出某天某个用户所有的数据,这里就要用到mongoexport命令了。导出数据mongoexport -h your-mongo-hostname --port 27017 -d database-name -c collection-name -q ‘{“uid”:123456, “created_at”:{$gt:Date(1593446400000)}}’ -o /home/yeqiongzhou/test.json该命令可以通过查询条件导出指定用

2020-07-02 23:32:51 152

原创 FFmpeg视频拼接

前言最近在工作中有这么一个需求:用一个超大视频来测试一个视频服务接口,看结果响应是否超时。但是本地只有一个2GB大小的电影文件,如何快速生成一个10GB大小的视频文件。视频拼接FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源程序。本文就介绍FFmpeg官方推荐的三种视频拼接方法.Concat demuxer: 基于demuxer实现的拼接,需要视频音频的属性完全一样,这种方式不会对视频音频流解码再编码,因此速度很快,推荐大家使用这种方式。ffmpeg -f conca

2020-07-02 23:29:45 883

原创 LeetCode——无重复字符的最长子串

题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串

2020-05-27 23:16:37 148

原创 Linux chmod 命令

命令详解Linux/Unix 的文件调用权限分为三级: 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。使用权限: 所有使用者命令全拼chmod = change mode语法格式chmod [-cfvR] [–help] [–version] mode file…参数说明mode: 权限设定字串,格式如下 :[ugoa…][[±=][rwxX]…][,…]其中:u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他

2020-05-27 23:04:09 317

原创 Linux chgrp 命令

命令详解Linux chgrp命令用于变更文件或目录的所属群组。在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。命令全拼chgrp = change group语法格式chgrp [-cfhRv][–help][–version][所属群组][文件或目录…]chgrp [-cfhRv][–help][–reference=<参考文件或目录>][–version][文件或目

2020-05-27 22:56:46 181

原创 Docker部署Golang Http服务

Docker部署Golang Http服务

2020-02-16 15:51:37 384

原创 Linux chattr命令

chattr 命令用于改变文件属性。

2020-01-22 22:46:46 158

原创 Linux cat命令

cat 命令用于连接文件并打印到标准输出设备上。

2020-01-22 22:43:55 240 2

原创 剑指Offer——机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题解#include <iostre...

2019-04-23 20:47:53 103

原创 剑指Offer——矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符...

2019-04-23 20:47:05 121

原创 剑指Offer——滑动窗口的最大值

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...

2019-04-23 20:46:09 101

原创 剑指Offer——数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。题解#include <iostream>#include <vector>...

2019-04-23 20:45:25 193

原创 剑指Offer——二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。题解#include <iostream>#include <string>using namespace std;struct TreeNode { int val; struct TreeNode ...

2019-04-23 20:44:32 162

原创 剑指Offer——序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树题解#include <iostream>#include <string>using namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tree...

2019-04-23 20:43:43 132

原创 剑指Offer——把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。题解#include <iostream>#include <vector>#include <queue>#include <algorithm>using namespace std;struct TreeNode { int val; s...

2019-04-23 20:42:46 142

原创 剑指Offer——按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。题解#include <iostream>#include <vector>#include <queue>#include <algorithm>using namespace st...

2019-04-23 20:41:16 119

空空如也

空空如也

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

TA关注的人

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