手撸golang 基本数据结构与算法 选择排序

缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 选择排序 选择排序就是重复“从待排序的数据中寻找最小值, 将其与序列最左边的数字进行交换”这一操作的算法。 在序列中寻找最小值时使用的是线性查找。 选择排序的时间复杂度也和冒泡排序的一样,都为O(n^2)。 摘自 <<我的第一本算法书>> 【日】石田保辉;宫崎修一 流程 给定待排序数组data[N] 设定目标位置i = 0 获取n = min(data, i), 即[0-N)区间的最小值的下标...阅读全文

简书 2021-02-22 11:32:44 老罗话编程

Leetcode-托普利茨矩阵.766

766 托普利茨矩阵 题目描述: 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是托普利茨矩阵。 image.png 解题思路: 判断矩阵中当前元素和右下角元素是否相同。 Java 版: class Solution { public boolean isToeplitzMatrix(int[][] matrix) { int n=matrix.length; ...阅读全文

简书 2021-02-22 11:32:43 黄sir_

Go验证身份证号

title: "Go验证身份证号" date: 2021-02-10T07:54:44+08:00 draft: true tags: ['go'] author: "dadigang" author_cn: "大地缸" personal: "http://www.real007.cn" 关于作者 http://www.real007.cn/about golang 身份证信息处理 功能简单介绍:针对一串身份证字符串(string)的处理: 1. 验证身份证的正确性 2. 提取出生年月日 3. ...阅读全文

简书 2021-02-22 11:32:41 大地缸

手撸golang 基本数据结构与算法 选择排序

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之选择排序选择排序就是重复“从待排序的数据中寻找最小值, 将其与序列最左边的数字进行交换”这一操作的算法。 在序列中寻找最小值时使用的是线性查找。 选择排序的时间复杂度也和冒泡排序的一样,都为O(n^2)。 摘自 <<我的第一本算法书>> 【日】石田保辉;宫崎修一流程给定待排序数组data[N]设定目标位置i = 0获取n = min(data, i), 即[0-N)区间的最小值的下标判断n是否等于i...阅读全文

Segmentfault 2021-02-25 10:32:33 ioly

2021-02-21:手写代码:高性能路由,也就是一个字符串和多个匹配串进行模糊匹配。一个数组arr里是["*a*","moonfdd"],字符串"moonfdd"能匹配到,理由是arr里有。字...

2021-02-21:手写代码:高性能路由,也就是一个字符串和多个匹配串进行模糊匹配。一个数组arr里是["a","moonfdd"],字符串"moonfdd"能匹配到,理由是arr里有。字符串"xayy"也能匹配到,理由是arr里的"a",第1个星对应"x",第2个星对应"yy"。 福哥答案2021-02-21: 1.前缀树。字符匹配和星号匹配。abcd和abcd,当左c和右对应的时候,下一步分两种情况,左d和右*对应,左c和右c对应。有代码。 2.ACOK算法。当时和面试官聊的时候,面试官说...阅读全文

简书 2021-02-22 03:32:49 福大大架构师每日一题

阿里P7大佬告诉你:如何拿下淘宝 P6+ 前端 Offer

一、个人介绍Hello!大家好,我是小问。是的,我的花名跟网名非常像,我网名叫小问,而花名也叫晓问,今天我的分享是如何拿下淘宝p6+的offer。 1.1 个人简介首先做一个自我介绍,2016-2019 年在七牛云实习,担任前端开发、前端架构设计、数据产品研发。2019 年 - 2020 年在 XMind 从事桌面端软件研发,并于 2019 年本科毕业。今年 4 月份我加入了淘系技术部的营销活动团队,我们团队主要负责双 11 等一些大促活动的落地支撑。主要的负责产品是千帆。我的技术栈比较多样,除...阅读全文

简书 2021-02-22 03:32:48 觞O

nginx 服务搭建

ubuntu 18.04 环境下搭建 nginx 服务,跑 go 程序; 参考地址: 如何在Ubuntu 18.04上使用Nginx部署Go Web应用程序 https://www.howtoing.com/how-to-deploy-a-go-web-application-using-nginx-on-ubuntu-18-04 安装 nginx sudo apt-get install nginx sudo systemctl start nginx sudo systemctl stop ...阅读全文

简书 2021-02-22 03:32:43 that_is_this

从C/C++到Go

参考链接: C++ wcscat()很多程序员都是从c/c++转到go的,难免会产生一些混淆, 在学习go语言的时候,尤其要注意与c/c++的区别, 对比起来学习效果可能更好。下面这个总结很不错, 直接引用过来学习:http://hyperpolyglot.org/c Hyperpolyglot C, Go a side-by-side reference sheet grammar and invocation | variables and expressions | arithmetic ...阅读全文

51CTO博客 2021-02-20 23:17:05 wx592a7561e9493

gin快速入门

gin框架快速入门 gin golang的一个微框架,对api友好,灵活,没有orm等, 其没有工具,需要手工创建文件及目录,和beego相比没有完整的mvc架构,也没有orm等 安装 go get github.com/gin-gonic/gin 运行与热加载 一般使用go run main.go 。默认为8080端口 也可以使用beego的工具bee进行运行,实现热加载 main.go 目录下 bee run 路由 r.GET("/login/:name",login) //name为利用变...阅读全文

简书 2021-02-21 17:32:48 mafa1993

Hyperledger Fabric-fabric-samples 安装链码

1. 准备确保本地已经安装好fabric-samples以及环境(可以看我之前的文章进行操作)。接下来我们将利用案例内的test网络进行链码的安装部署。2. 启动测试网络进入fabric-samples。 进入test-network文件夹,然后启动测试网络 cd ./test-network ./network.sh down ./network.sh up createChannel ./network.sh down 是为了确保关闭之前可能存在的测试网络。 表示测试网络创建成功,并且设定了...阅读全文

简书 2021-02-21 17:32:48 齐樾2ed

golang语言学习之数据类型

Go 语言数据类型 在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: Column 1 Column 2 序号 类型和描述 1 布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,...阅读全文

51CTO博客 2021-02-21 16:32:58 清白之年

golang fyne 使用中文并打包进二进制文件

1. 首先安装官方的cmd工具 go get fyne.io/fyne/cmd/fyne 验证: fyne 2. 准备好有效的字体文件(.ttf) 3.将字体文件转为go文件 fyne bundle Alibaba-PuHuiTi-Medium.ttf > bundle.go 4. 自动写入头 (head 命令是linux命令,win下需要在git bash中调用) head -n 9 bundle.go //文件 bundle.go (文件中无此句) // auto-generated // ...阅读全文

简书 2021-02-21 14:32:40 余生社会

手撸golang 基本数据结构与算法 冒泡排序

手撸golang 基本数据结构与算法 冒泡排序 缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 冒泡排序 冒泡排序就是重复“从序列右边开始比较相邻两个数字的大小, 再根据结果交换两个数字的位置”这一操作的算法。 在这个过程中,数字会像泡泡一样, 慢慢从右往左“浮”到序列的顶端, 所以这个算法才被称为“冒泡排序”。 在序列的最右边放置一个天平,比较天平两边的数字。 如果右边的数字较小,就交换这两个数字的位置。 完成后,天平往左移动一个位置,比...阅读全文

简书 2021-02-21 14:32:40 老罗话编程

Golang 大杀器之性能剖析 PProf

Golang 大杀器之性能剖析 PProf 来源(转) https://www.jianshu.com/p/4e4ff6be6af9 支持的使用模式: * Report generation:报告生成 Interactive terminal use:交互式终端使用 Web interface:Web 界面 用途 作用 CPU Profiling:CPU 分析,按照一定的频率采集所监听的应用程序 CPU(含寄存器)的使用情况, 可确定应用程序在主动消耗 CPU 周期时花费时间的位置 Memory...阅读全文

简书 2021-02-21 14:32:40 我是不会赢的

skywalking golang客户端源码解析

源码地址 go sdk:https://github.com/SkyAPM/go2sky plugin:https://github.com/SkyAPM/go2sky-plugins 提供了go http、go-restful、gin等框架的trace接入插件,用于服务端和客户端的trace span创建。 go sdk的基本特性 客户端和服务端使用grpc双向stream通信。 可以设置采样率。默认都会上报。 可以自定义logger。 可以自定义上报的缓冲通道长度,默认30000 可以自定义...阅读全文

简书 2021-02-21 14:32:40 7亮

go为什么这么快?(再探GMP模型)

进程、线程、协程 进程:进程是系统进行资源分配的基本单位,有独立的内存空间,单切换代价极高,进程间通信也比较麻烦 线程:线程是CPU调度和分派的基本单位,线程依附于进程,与其他线程共享进程的资源,仅有自己的(程序计数器,一组寄存器的值,和栈),线程切换代价小(但是线程之间的切换可能会设计用户态和内核态的切换),由于共享进程资源,所以线程之间通信比较方便。 协程:协程是一种用户态的轻量级线程,协程的调度完全由用户控制,协程切换只需要保存和恢复任务的上下文,没有内核的开销。协程间通信也比较简单(协程...阅读全文

简书 2021-02-21 14:32:40 gurlan

手撸golang 基本数据结构与算法 冒泡排序

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之冒泡排序冒泡排序就是重复“从序列右边开始比较相邻两个数字的大小, 再根据结果交换两个数字的位置”这一操作的算法。 在这个过程中,数字会像泡泡一样, 慢慢从右往左“浮”到序列的顶端, 所以这个算法才被称为“冒泡排序”。 在序列的最右边放置一个天平,比较天平两边的数字。 如果右边的数字较小,就交换这两个数字的位置。 完成后,天平往左移动一个位置,比较两个数字的大小。 不断对数字进行交换,天平最终到达了最...阅读全文

Segmentfault 2021-02-24 23:32:33 ioly