![](https://img-blog.csdnimg.cn/20201025142957608.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Go语言
G语言那些事
路上的追梦人
尽人事,听天命
展开
-
LeetCode:硬币组合的最少个数
/*给您不同面额的硬币和总金额.编写一个函数来计算组成该数量所需的最少数量的硬币.如果这笔钱不能用硬币的任何组合弥补,则返回-1.Example 1:coins = [1, 2, 5], amount = 11return 3 (11 = 5 + 5 + 1)Example 2:coins = [2], amount = 3return -1.解题思路:递归算法不可取,会导致大量的数据重复计算。优先选择动态规划*/Go语言实现package mainimport.原创 2020-11-12 13:00:21 · 764 阅读 · 0 评论 -
leetcode208:实现前缀树插入、查找
示例:Trie trie=new Trie();trie.insert("apple");trie.search("apple");//返回truetrie.search("app");//返回falsetrie.startsWith("app");//返回truetrie.insert("app");trie.search("app"); //返回true你可以假设所有的输入都是由小写字母a-z构成的。保证所有输入均为非空字符串。解题思路:这里考查的Trie前缀树是一种有序树,.原创 2020-11-06 13:45:00 · 150 阅读 · 0 评论 -
LeetCode11题:容纳最多的水
给你n个非负整数a1,a2,....,an,每个数代表坐标中的一个点(i,ai),在左边内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0),找出其中的两条线,使得他们与x轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,且n的值至少为2;图中垂直线代表输入数组[1,8,6,2,5,4,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例:输入:[1,8,6,2,5,4,3,7]输出:49解题思路:双指针法,定义两个指针L和R,分别指向.原创 2020-11-04 10:20:13 · 185 阅读 · 0 评论 -
go语言实现网络并发爬虫
/*爬虫的四个主要步骤:(1)明确目标(要知道你准备在哪个范围或者网站去搜索)(2)爬(将所有的网站的内容全部爬下来)(3)取(去掉对我们没用处的数据)(4)处理数据(按照我们想要的方式存储和使用)*/一般爬虫package mainimport ( "fmt" "net/http" "os" "strconv")//爬取网页内容func HttpGet(url string)(result string,err error){ res,err1:=http.原创 2020-11-02 15:09:28 · 382 阅读 · 0 评论 -
LeetCode-876题:求链表的中间位置
/*给定具有头节点的非空单链表,返回链表的中间节点。如果有两个中间节点,则返回第二个中间节点。例如:输入:[1,2,3,4,5]输出:此列表中的节点3(序列化:[3,4,5])返回的节点的值为3.(该节点的判断序列化为[3,4,5])。请注意,我们返回了一个ListNode对象ans,这样:ans.val = 3,ans.next.val = 4,ans.next.next.val = 5,ans.next.next.next = NULL。输入:[1,2,3,4,5,6]输出:此列.原创 2020-10-30 20:45:05 · 235 阅读 · 0 评论 -
LeetCode-406题:身高重建队列
/*题目描述:假设打乱顺序的一群人站成一个队列。每个人由一个整数对(h,k)表示,其中h是这个人的身高,k是排在这个人前面而且身高大于或等于h的人数。编写一个算法来重建这个队列。示例:输入:[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]*//*思路:当两个人的高度h相同时,k比较大的往后排;两个人高度不同时,“个子矮的”对于个子高的来说是不可见的,默认人数为0;所以先根据高度(降..原创 2020-10-29 21:44:16 · 134 阅读 · 0 评论 -
Go实现简单的多并发服务器
互联网通信本质上是应用进程之间的通信、连接,必须知道通信双方的IP以及端口Port;本文选用流式套接字的模式,利用Go语言实现简单的多并发任务,原理的流程图大致如下:服务器的建立建立socket,申明自身的端口port和IP,并绑定到socket,使用listen监听,然后不断用accept去查看是否有连接。如果有,捕获socket,并通过recv获取消息的内容,通信完成后调用closeSocket关闭这个对应accept到的socket。如果不需要等待任何客户端连接..原创 2020-10-27 14:44:54 · 796 阅读 · 0 评论 -
Go语言实现生产者-消费者模式
之前在学习操作系统的时候,就知道生产者-消费者,但是概念是模模糊糊的,好像是一直没搞明白。 其实很简单嘛,生产者生产,消费者进行消费,就是如此简单。了解了一下go语言的goroute,感觉实现并发原来可以如此简单,不像之前Java、C++,什么还需要什么线程池啥的。单向channel最典型的应用是“生产者消费者模型”所谓“生产者消费者模型”: 某个模块(函数等)负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、协程、线程、进程等)。产生数据的模块,就形象地称为生.原创 2020-10-26 18:49:51 · 2560 阅读 · 1 评论 -
Go语言实现猜数字小游戏
利用Go语言实现一个四位数字,而且不重复的猜数字游戏,解题思路是先利用rand随机函数产生一个四位数,然后通过切片进行引用传递,设定用户可以输入的数字,最后分别遍历切片四位数字与产生的四位数是否相同package mainimport "fmt"import( "math/rand" "time")func CreateNum(p *int){ //设置种子 rand.Seed(time.Now().UnixNano()) var num int for{ num=r.原创 2020-10-25 14:42:43 · 745 阅读 · 0 评论