- 博客(116)
- 资源 (42)
- 收藏
- 关注
原创 9.返回滑动窗口中的最大值
1. 239滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值-------...
2019-09-28 16:19:30
439
原创 8.返回数据流中的第K大元素
1. 703返回数据流中的第K大元素设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2...
2019-09-28 16:16:44
391
原创 7.用队列实现栈&用栈实现队列
1.232. 用栈实现队列使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek();...
2019-09-28 16:15:20
455
原创 6. 有效的括号
1. 题目: 有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输...
2019-09-28 16:07:37
173
原创 5. K 个一组翻转链表
1.25. K 个一组翻转链表https://leetcode-cn.com/problems/reverse-nodes-in-k-group/https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ /** * Definition for singly-linked list. * type ListNode st...
2019-08-15 17:31:16
270
原创 4. 环形链表2
1.142. 环形链表2https://leetcode-cn.com/problems/linked-list-cycle-ii/https://leetcode-cn.com/problems/linked-list-cycle-ii/ /** * Definition for singly-linked list. * type ListNode struct { *...
2019-08-15 17:28:58
123
原创 3. 环形链表
1.141. 环形链表https://leetcode-cn.com/problems/linked-list-cycle/https://leetcode-cn.com/problems/linked-list-cycle/submissions/ /** * Definition for singly-linked list. * type ListNode struct {...
2019-08-15 17:27:33
139
原创 2. 两两交换链表中的节点
1.24. 两两交换链表中的节点https://leetcode-cn.com/problems/swap-nodes-in-pairs/https://leetcode-cn.com/problems/swap-nodes-in-pairs//** * Definition for singly-linked list. * type ListNode struct { * ...
2019-08-15 17:24:27
134
原创 1. 反转链表
1. 206. 反转链表https://leetcode-cn.com/problems/reverse-linked-list/https://leetcode-cn.com/problems/reverse-linked-list//** * Definition for singly-linked list. * type ListNode struct { * ...
2019-08-15 17:21:53
125
转载 消息队列之-Kafka原理讲解
转载:https://blog.youkuaiyun.com/wanglei_storage/article/details/82692413
2019-08-13 13:31:47
187
原创 Golang HTTP 消息中间件 简单实现
1. 需求消息中间件可以将业务功能代码和非业务功能代码的解耦 支持能够动态地增删中间件2. HTTP路由相关函数定义http.HandleFunc(pattern string, handler func(ResponseWriter, *Request)) http.Handle(pattern string, handler Handler) http.Handle 第二个参数...
2019-07-14 19:45:58
1162
转载 Golang百万级高并发实践
转自:https://blog.youkuaiyun.com/Jeanphorn/article/details/79018205写在前面Go语言作为新兴的语言,最近发展势头很是迅猛,其最大的特点就是原生支持并发。它使用的是“协程(goroutine)模型”,和传统基于 OS 线程和进程实现不同,Go语言的并发是基于用户态的并发,这种并发方式就变得非常轻量,能够轻松运行几万并发逻辑。Go 的并发...
2019-06-30 22:50:11
3759
原创 二叉树 前序/中序/后序/层序遍历 二叉搜索树插入/查找/删除实现
1. LinkedNode.gopackage studyimport ( "container/list" "fmt" "math")//MyStack used for Pre/In/Post order traversetype MyStack struct { list *list.List}//Push ...func (stack *MyStack) ...
2019-05-18 13:46:33
283
原创 Golang 单链表基本操作
package linkedlistimport ( "fmt")type ListNode struct { Data interface{} Next *ListNode}type LinkedList struct { head *ListNode length uint}func NewListNode(v interface{}) *ListNode...
2019-01-13 15:53:20
802
转载 go语言实现快速排序
快速排序作为分治法的经典算法,原理自不必多说,我只是用go语言直接实现了,当然可以不用中间切片,但是这种写法最能体现快速排序的分治思想。 package main import "fmt" // 快速排序(直接)实现 func quickSort(s []int) []int { if len(s) &...
2018-09-12 11:15:58
995
转载 golang 实现Twitter snowFlake算法 高效生成全局唯一ID
最近在着手准备一个H5游戏 因为这是我第一次接触游戏这个类目 即使量不大也想好好的做它一番 在设计表结构的时候想到了表全局唯一id这个问题 既然是游戏 那么一定是多人在线点点点(运营理想状态 哈哈哈) 一开始想使用mongoDB的objectId来作为全局唯一id 但是字符串作为索引的效率肯定不如整型来得实在两者的主要差别就在于,字符类型有字符集的概念,每次从存储端到展现端之间都...
2018-09-12 10:48:53
1419
转载 Goroutine陷阱
Go在语言层面通过Goroutine与channel来支持并发编程,使并发编程看似变得异常简单,但通过最近一段时间的编码,越来越觉得简单的东西,很容易会被滥用。Java的标准库也让多线程编程变得简单,但想当初在公司定位Java的问题,发现很多的同学由于没有深入了解Java Thread的机制,Thread直接New从不管理复用,那Goroutine肯定也要面临这类的问题。1 Goroutine...
2018-09-10 09:43:25
259
转载 golang -- 时间日期总结
golang时间处理相关包 "time"1.时间戳 当前时间戳fmt.Println(time.Now().Unix())# 13890583322.str格式化时间当前格式化时间fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3...
2018-09-09 22:55:20
4110
转载 Go语言中普通函数与方法的区别
1.对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然。2.对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。以下为简单示例:package structTest //普通函数与方法的区别(在接收者分别为值类型和指针类型的时候) //Date:2014-4-3 10:00:07 impo...
2018-09-09 22:52:42
867
转载 golang 理解goroutine 和线程
进程、线程和协程要理解什么是goroutine,我们先来看看进程、线程以及协程它们之间的区别,这能帮助我们更好的理解goroutine。进程:分配完整独立的地址空间,拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程的切换只发生在内核态,由操作系统调度。 线程:和其它本进程的线程共享地址空间,拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程的切换一般也由操作系统调度(标准线程是的)。 协...
2018-09-09 22:51:41
6332
转载 对于golang的goroutine并发处理任务时的理解
原文:http://rfyiamcool.blog.51cto.com/1030776/1381686以前用golang做并发处理的时候,很是粗暴,就是利用golang的高级性能,直接fork一个任务,来处理请求,最典型的就是直接 go func,当时是因为用http和socket没觉得什么,今天再次看golang的goroutine的时候,发现这几天写的程序有些问题。比如用goroutine...
2018-09-09 22:49:58
178
转载 Go-MySQL-Driver:一个Go语言的轻量级极速的mysql驱动 Go
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:https://github.com/go-sql-driver/m...
2018-09-09 22:47:15
2273
转载 go语言的模板,text/template包
定义模板就是将一组文本嵌入另一组文本里传入string–最简单的替换package main import ( "os" "text/template") func main() { name := "waynehu" tmpl, err := template.New("test").Parse("hello, {{.}}") //建立一个...
2018-09-09 22:43:42
734
转载 学习go语言碰到的问题:main redeclared in this block
E:\goapp是我的GOPATH目录分别建立了2个文件:hello.go// hellopackage main import "fmt" func main() { fmt.Println("Hello World! 你好,世界!")}sandbox.go// sandboxpackage main import ( "fmt" "time"...
2018-09-09 22:31:39
10733
1
转载 go在windows上环境搭建
1、首先下载对应系统位数版本http://www.golangtc.com/download 我的电脑是64位windows系统,所以下载go1.6rc2.windows-amd64.zip2、解压到D:\Go3、设置环境变量新建GOARCH=amd64 新建GOBIN=D:\go\bin (你Go安装目录) 新建GOOS=windows 新建GOROOT=D:\go...
2018-09-09 22:29:40
280
转载 beego框架的环境搭建
beego框架的环境搭建搭建此环境,必须有Go语言环境。若没有,请先搭建go语言环境。go语言的环境搭建1.下载beego包并安装若你已经安装了Git的,直接执行下面命令。打开cmd,输入下面命令。[plain] view plain copygo get github.com/astaxie/beego 当然,你没安装git也没关系,就是会麻烦点,得先去https://git...
2018-09-09 22:28:09
538
原创 gRPC 优秀博客
优秀博客地址:https://blog.youkuaiyun.com/xuduorui/article/details/78278808
2018-09-03 22:41:47
206
转载 【golang 源码分析】内存分配与管理
转载:https://blog.youkuaiyun.com/zhonglinzhang/article/details/746264121. Memory AllocatorGo 内存分配器基于 tcmalloc 模型,这在 malloc.go 头部注释中有明确说明。based on tcmalloc http://goog-perftools.sourceforge.net/doc/tcmall...
2018-09-03 17:07:26
868
转载 golang 源码分析之URL编码规范
首先看一下url编码规范: backspace %08 tab %09 linefeed %0A creturn %0D space %20 ! %21 " %22 # ...
2018-09-03 17:00:04
2526
原创 map
1.map创建map也就是Python中字典的概念,它的格式为map[keyType]valueTypemap的读取和设置也类似slice一样,通过key来操作,只是slice的index只能是`int`类型,而map多了很多类型,可以是int,可以是string及所有完全定义了==与!=操作的类型。创建前必须进行变量声明//声明一个key是字符串,值为int的字典,这种方式的声明需要在使用之前使...
2018-05-11 13:15:04
169
原创 slice切片
1.概念“动态数组”slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度。// 和声明array一样,只是少了长度var fslice []int//接下来我们可以声明一个slice,并初始化数据slice := []byte {'a', 'b', 'c', 'd'}2.声明普通声明// 和...
2018-05-09 09:33:20
464
原创 字符串
1.字符串表示在Go语言中不倾向于使用单引号来表示字符串,请根据需要使用双引号或反引号。Go语言中的字符串字面量使用 双引号 或 反引号 来创建:双引号用来创建可解析的字符串字面量(支持转义,但不能用来引用多行); fmt.Println("How are you?") fmt.Println("Fine, thank you.And you?") fmt...
2018-05-09 09:21:34
169
原创 匿名函数
1.声明一个匿名函数 func(参数列表) 返回值列表 { 函数体... }2.匿名函数的调用package main import ( "fmt" ) func main() { //无参数直接加括号 func() int { var i int =5 fmt.Printf("func 1\n") ...
2018-05-09 09:18:10
155
转载 Go实战--golang中使用redis(redigo和go-redis/redis)
何为redis官网: https://redis.io/Redis is an in-memory database open-source software project implementing a networked, in-memory key-value store with optional durability. Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存...
2018-04-11 14:47:26
2793
翻译 LDA(Linear Discriminant Analysis)
1.介绍 线性判别分析(LDA)最常用作模式分类和机器学习应用的预处理步骤中的降维技术。目标是将数据集投影到具有良好类可分性的较低维空间上,以避免过度拟合(“维数灾难”)并降低计算成本。 Ronald A. Fisher于1936年提出了线性判别式(在分类问题中使用多重测量),并且它还具有一些实际用途作为分类器。原始的线性判别式被描述为一个2类问题,并且后来被CR Rao在...
2018-03-06 11:04:58
2752
1
原创 PCA降维--代码实现
1.PCA降维from numpy import *def loadDataSet(fileName, delim='\t'): fr = open(fileName) stringArr = [line.strip().split(delim) for line in fr.readlines()] datArr = [map(float,line) for li
2018-02-07 14:08:44
7820
原创 条款3:使容器里对象的拷贝操作轻量而正确
1.容器添加对象,是将添加对象的一份拷贝;2.拷贝派生类(通过基类的拷贝构造函数)拷贝容器的时候,对象的派生部分会被删除;例如:当然由于继承的存在,拷贝会导致分割。那就是说,如果你以基类对象建立一个容器,而你试图插入派生类对象,那么当对象(通过基类的拷贝构造函数)拷入容器的时候对象的派生部分会被删除:vector vw; class SpecialWidget: // Specia
2017-12-02 12:04:35
233
机器学习实战(书籍+代码)
2017-09-18
机器人视觉测量与控制
2016-11-01
零基础学Python
2017-12-11
Python Machine Learning
2017-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人