自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 redis

1.SET命令 set key value EX 秒数 NX(原来用redis加锁是用的这个命令!!!) 参考https://redis.io/commands/set http://redisdoc.com/string/set.html

2019-05-15 23:39:35 87

原创 排序

1.快排(不稳定,平均O(nlgn),最坏O(n^2)) package main import "fmt" /*递归实现*/ func QuickSort(nums []int, begin int , end int){ if begin>=end { return } index := Partition(nums,begin,end) QuickSort(n...

2019-03-26 11:39:08 129

原创 链表反转

package main import "fmt" type ListNode struct{ val int next *ListNode } func ReverseList(head *ListNode) *ListNode { var p *ListNode = nil var pNext *ListNode = head for pNext != nil { ...

2019-03-25 09:18:33 110

原创 设计模式——模板方法模式

模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。(模板方法将算法定义成一组步骤,其中任何步骤都可以是抽象的,由子类负责实现。) 工厂方法是模板方法的一种特殊版本。 钩子:在当前类不做事或实现默认方法,但子类中可以选择实现或者不实现该方法。下面的go模板方法模式中,没办法实现钩子。 钩子目的:1.算法部...

2019-03-18 10:56:59 96

原创 设计模式——外观模式和最少知识原则

外观模式:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 最少知识原则(墨尔忒法则):只和你的密友谈话。 如何避免影响太多对象?对象的方法内,只应调用属于以下范围的方法: 1.访问对象本身(的方法) 2.作为方法入参传入的对象(的方法) 3.方法内创建/实例化的对象(的方法) 3.对象属性中包含的对象(的方法) ...

2019-03-18 10:17:31 205

原创 设计模式——命令模式

命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 package main import "fmt" //灯 type Light struct{ room string } func (l Light) on(){ fmt.Println(l.room, "light is on") } func (l Light) of...

2019-03-17 20:10:08 77

原创 设计模式——适配器模式

适配器模式:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。 1.对象适配器 package main import "fmt" //标准接口 type Target interface { quack() fly() } //被适配对象 type Adaptee interface{ gobble() fly() } //适配器 type...

2019-03-16 00:08:17 64

原创 设计模式——单例模式

单例模式:确保一个类只有一个实例,并提供全局访问。 有些对象只需要一个:线程池,缓存,对话框,处理偏好设置和注册表的对象,日志对象,充当打印机、显卡等设备的驱动的对象。 1.JAVA中单例模式的实现:. //每次获取实例都加锁 public class Singleton{ private static Singleton uniqueInstance;//static属于类 ...

2019-03-15 21:08:13 90

原创 设计模式——工厂方法&抽象工厂

1.工厂方法:定义了一个创建对象的接口,但由子类来决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 package main import "fmt" //Pizza基类 type AbstarctPizza interface{ prepare() bake() cut() box() } type Pizza struct{ name string dou...

2019-03-15 17:53:33 119

原创 设计模式——装饰者模式

动态地将责任附加到对象上。提供有别于继承的另一种扩展功能的选择。 package main import "fmt" //抽象组件 type AbstractBeverage interface{ getDescription() string cost()float64 } type Beverage struct{ description string } func (b Bev...

2019-03-15 12:26:56 86

原创 设计模式——观察者模式

定义了对象之间的一对多依赖,当一个对象改变状态时它所有的依赖者都会收到通知并自动更新。 package main import "fmt" type Subject struct{ observers []*Observer temp float32 humidity float32 pressure float32 } type Observer struct{ ...

2019-03-15 11:01:34 69

原创 设计模式——策略模式

一、策略模式 定义了算法族,分别封装起来,让它们之间可以相互替换。让算法的变化独立于算法的使用者。 package main import "fmt" type Quack interface { quack() } type Fly interface{ fly() } type Duck struct{ Quack Fly } //两种叫的方法 type ZiziQua...

2019-03-14 23:47:47 69

转载 golang中如何阻塞等待所有goroutines都完成

方案一: 也是推荐方案,也是官方推荐方案,涉及到一个写并发经常关注的模块sync模块,利用里面的sync.WaitGroup去做 代码如下: package main import (     "fmt"     "sync"     "time" ) func main() {     var wg sync.WaitGroup     for i := 0; i < 5...

2019-01-21 21:29:58 7950

转载 HTTP报文与工作原理详解

【链接】http://network.chinabyte.com/401/13238901.shtml 超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。   HTTP 请求报文   HTTP 请求报文由

2017-12-20 15:19:58 579

转载 leetcode691 Stickers to Spell Word 带记忆功能的回溯

题目:  We are given N different types of stickers. Each sticker has a lowercase English word on it. You would like to spell out the given target string by cutting individual letters from your coll

2017-10-10 17:18:14 667

空空如也

空空如也

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

TA关注的人

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