4 贺鹏程

北京字节跳动网络技术有限公司 - 后台开发工程师

我要认证

没有谁生来就是神牛,而千里之行,始于足下!

等级
TA的排名 2k+

超级码力在线编程大赛初赛 第2场 题解

超级码力在线编程大赛初赛 第2场 题解题目出的对退役老年选手很友好,拿个T恤跑路…下面的题解仅代表个人观点,出了问题,概不负责。比赛链接:https://tianchi.aliyun.com/oj/15165469968503404?spm=5176.15098393.J_6210563800.8.6b8b5cd6dK6WtT1. 三角魔法描述小栖必须在一个三角形中才能施展魔法,现在他知道自己的坐标和三个点的坐标,他想知道他能否施展魔法−109<=x,y<=109点在边上也属于

2020-08-30 13:07:08

Linux 内核数据结构

Linux 内核数据结构获得源码目前,Linux 内核的源码维护在 GitHub 上,地址为:https://github.com/torvalds/linux克隆到本地git clone https://github.com/torvalds/linux本书使用的源码版本为 2.6.34 ,所以切换到对应 Tag:cd linuxgit checkout v2.6.34或者直接在:https://github.com/torvalds/linux/releases/tag/v2

2020-08-28 01:48:49

HTTPS握手过程

HTTPS 原理HTTPSHTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。SSL 技术最初是由浏览器开发商网景通信公司率先倡导的,开发过 SSL3.0 之前的版本。目前主导权已转移到 IETF(InternetEngineering Task Force,Internet 工程任务组)的手中。

2020-08-19 02:38:35

NSQ使用入门

NSQ使用入门简介消息队列是进程间通信或同一进程不同线程间进行通信一种方式,可以将服务异步化,对流量进行整形,削峰填谷,是高并发、大数据场景下不可或缺的中间件;使得消息生产者和消费者解耦,方便系统模块化设计。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 官方和第三方还为NSQ开发了众多客户端功能库,如官方提供的基于HTTP的nsqd、Go客户端go-nsq、Python客户端pynsq、基于Node.js的JavaScri

2020-06-27 01:08:16

MySQL 基础学习笔记

MySQL 基础学习笔记我的MySQL学习笔记,记录一些MySQL的基础知识。源文档SQL 语句与种类DDL(Data Definition Language)数据库定义语言:如 create drop alterDML(Data Manipulation Language)数据操纵语言:如 select insert update deleteDCL(Data Control La...

2020-05-05 16:38:12

LeetCode 887 鸡蛋掉落(dp,记忆化搜索,二分)

题目链接:鸡蛋掉落你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 &...

2020-04-11 16:01:26

Linux 网络通信瑞士军刀 nc 命令使用

Linux 网络通信瑞士军刀 nc 命令使用简介netcat也就是nc被称为TCP/IP的瑞士军刀。以体积小,功能灵活著称。在各个发行版有默认安装,可以用来做很多网络相关的工作。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。甚至还可以作为简单的 T...

2019-09-27 18:34:46

彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题

问题描述由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了,在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问题。解决这个问题的办法,网上一搜一大堆,总结一下,网上大概有两种解决方案。因为 go get 不到的库,一般来说在 github 都有人做了镜像,这个时候一般是曲线救国,从 github ...

2019-09-23 15:46:05

Golang的反射reflect深入理解和示例

Golang的反射reflect深入理解和示例编程语言中反射的概念在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。每种语言的反射模型都不同,并且有些语言根本不支持反射。Gola...

2019-08-29 22:15:10

Map 在 Go runtime 中的高效实现

什么是映射函数要明白 map 是如何工作的的,我们需要先讨论一下 map 函数。一个 map 函数用以将一个值映射到另一个值。给定一个值,我们叫 key,它就会返回另外一个值,称为 value。map(key) → value现在,map 还没什么用,除非我们放入一些数据。我们需要一个函数来将数据添加到 map 中insert(map, key, value)和一个函数从 map 中...

2019-07-14 16:41:13

正则表达式30分钟入门教程

转载自:https://deerchao.net/tutorials/regex/regex.htm如何使用本教程别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。...

2019-06-06 17:15:58

使用 golang 操作 redis

使用 golang 操作 redis首先使用 go get 安装第三方开源库。go get github.com/garyburd/redigo/redis连接 redispackage mainimport ( "fmt" "github.com/garyburd/redigo/redis")func main() { c, err := redis.D...

2019-05-07 17:31:32

Thrift IDL 使用

Thrift IDL 使用介绍首先看一下维基百科额定义:Thrift是一种接口描述语言和二进制通讯协议,[1]它被用来定义和创建跨语言的服务。[2]它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统[3])、Capp...

2019-05-06 16:57:52

使用 VSCode 编辑远程服务器文件

使用 VSCode 编辑远程服务器文件在远程服务器上使用 vim 编辑文件一直觉得不太顺手,个人比较喜欢用 VSCode ,终于解决了使用 VSCode 编辑远程文件。安装 Remote VSCode发现一款插件 Remote VSCode,可以实现这个功能如图,好评数还是很多的。首先我们打开 Remote VSCode 这个插件的官方页面,点击安装即可,或者直接在 VSCode...

2019-04-29 17:02:09

GoLang 自定义包总结

GoLang 自定义包总结大概总结一下 GoLang 自定义包,并不是需要发布的包,只是一次在代码工作路径下调用自定义包的一个尝试。今天踩坑就是,以为 import 的时候要填写文件夹里面的 package 的名称,比如之前我是这么写的:import "./pack/p"这样无法通过编译,这就是本文的由来了首先,工作的目录结构是这样的:.├── main.go└── pack...

2019-04-24 20:46:55

Golang 新手可能会踩的 50 个坑

原文链接:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pi...

2019-04-23 15:20:34

GoLang格式化占位符

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。# 定义示例类型和变量type Human struct { Name string}var people = Human{Name:"zhangsan"}普通占位符占位符说明举例输出%v相应值的默认格式。Printf("%v", people){zhan...

2019-04-23 14:45:12

LeetCode 329 矩阵中的最长递增路径(记忆化搜索)

题目链接:矩阵中的最长递增路径给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums = ...

2019-03-16 10:44:49

LeetCode 76 最小覆盖子串(尺取法)

题目链接:最小覆盖子串给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。思路(滑动窗口) O(n)O(n)O(n)首先用哈希表统计出 TT...

2019-03-16 10:15:32

LeetCode 726 原子的数量(递归,map)

题目链接:原子的数量给定一个化学式formula(作为字符串),返回每种原子的数量。原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2 这个表达是不可行的。两个化学式连在一起是新的化学式。例如 H2O2He3Mg4 也是化学式。一个括...

2019-03-16 09:00:32

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。