不会飞的章鱼

熟能生巧,勤能补拙,静能生慧;念念不忘,必有回响。

题目描述

有这样一个场景,需要你从A服务中获取多个用户id,然后根据用户id请求B服务获取用户信息,如何用Golangchannel和协程来实现?

问题思考和实现

方法一

由于从A服务中获取的是一个数组形式的用户id,所以我可以考虑从A服务获取用户id后,再用for range循环遍历每一个用户id,给每个用户建立一个通道,开个协程请求B服务获取用户信息,再通过通道传回来。

阅读全文 »

我步入丛林 因为我希望活得随意 我希望活得深刻 吸取生命所有的精华 把非生命的一切都击溃 以免我在弥留之际 发现自己从未真正活过。

今天是我大学毕业之后过的第二个生日,是的,过了今天,我就24岁了。

突然发现我坚持了七年写日记的习惯,在毕业后竟然断更了。

每天得过且过,忘记了昨天,也看不清未来。

我的写作之路

阅读全文 »

为什么要用Docker

在做软件服务时,有些程序对环境要求极其苛刻,比如必须把C++的库都安装好,且放到指定位置才行,这样就会对测试和运维人员造成极大的工作负担,因此我们利用Docker一键编译,到处运行的特点,给自己的服务创建一个镜像,然后开启一个容器,将端口号和路径映射出来。

Docker命令

查询本机存在的镜像

1
docker images
阅读全文 »

最近有件事让我既喜又悲,那就是常年不联系的朋友,对我突然的关心。

大学好友lss

过年没事看到lss的朋友圈,说他在乌鲁木齐的公司晋升了高级主管,我很开心,于是找他闲聊了几句。

然后就问我“兄弟,办信用卡不”,我说不办,立马用哈哈缓解尴尬的气氛,还不死心的说一句“帮我问问身边的呗,有需要可以联系我”。

我回了句好吧之后,立马结束了聊天。

阅读全文 »

题目链接

解答

方法一,暴力求解

1
2
3
4
5
6
7
8
9
10
11
12
func rotate(nums []int, k int)  {
//暴力解决
var temp,previous int
for i:=0;i<k;i++ {
previous = nums[len(nums)-1]
for j:=0;j<len(nums);j++ {
temp = nums[j]
nums[j] = previous
previous = temp
}
}
}
阅读全文 »

题目链接

leetcode中国

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func isAnagram(s string, t string) bool {
if len(s) != len(t) {
return false
}
countmap := make(map[uint8]int)
for i := 0; i < len(s); i++ {
countmap[s[i]]++
}
for i := 0; i < len(t); i++ {
countmap[t[i]]--
if countmap[t[i]] < 0 {
return false
}
}

return true
}

题目

解题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func moveZeroes(nums []int)  {
index := 0
//1,先将非0的数排到数组前面
for _,v := range nums {
if v != 0 {
nums[index] = v
index++
}
}
//2,再排是0的数到nums数组后面
for i:=index;i<len(nums);i++ {
nums[i] = 0
}
}