Golang学习
文章平均质量分 82
漓艾初
云计算 资源管理 serverless 多聊聊~
展开
-
常见的排序方法简介以及Go实现
常见的排序方法简介以及Go实现常见排序方法汇总相关概念排序方法思路及其实现插入排序(稳定)冒泡排序(稳定)归并排序(稳定)希尔排序/缩小增量排序 (不稳定)选择排序 (不稳定)堆排序 (不稳定)快速排序 (不稳定)计数排序 (稳定)桶排序(稳定)基数排序(稳定)参考文献常见排序方法汇总相关概念比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性原创 2021-02-03 16:46:49 · 131 阅读 · 0 评论 -
OJ(牛客网)输入输出练习 Go实现
目录导读OJ(牛客网)输入输出练习 golang实现A+B(1)A+B(2)A+B(3)A+B(4)A+B(5)A+B(6)A+B(7)字符串排序(1)字符串排序(2)字符串排序(3)OJ(牛客网)输入输出练习 golang实现这个文章主要是我找工作的一些随笔,因为在笔试过程中经常需要自己搞定输入输出,这个如果不会有思路也无法搞定,因此在这里写下这个blog来为后来者一些借鉴,减少走弯路的概率。此外,这个练习可以基于牛客的一个竞赛进行练习,我都是基于这里的题目来练习,后来者们可参考一下我的代码,并自己原创 2021-01-31 11:20:16 · 4407 阅读 · 0 评论 -
经典dp--股票买卖系列之Go写法
经典dp–股票买卖系列系列之GO写法一般方法求解(非DP)121. 买卖股票的最佳时机该题只能买卖一次,因此只要找到一个买入最低点以及对应的卖出最高点即可。因此我们可以使用一个变量minValue存储遍历过程中的最低点,然后在后续遍历中不断用price[i]减去minValue, 并取这个过程中的最大值即可。func maxProfit(prices []int) int { length := len(prices) if length < 2 { return 0 } mi原创 2021-01-19 21:20:29 · 327 阅读 · 0 评论 -
Go刷剑指offer
前言这个是我刷题碰到的一些自己不会的题,然后看看大佬们的题解来做的,这里需要特别感谢@Krahets大佬,有啥不懂,看看大佬的题解豁然开朗。下面的很多截图都是从大佬那里来的。剑指 Offer 45. 把数组排成最小的数// 实现Sort接口进行排序,这里的string可以实现为自己的数据结构type MySlice []string func (s MySlice) Len() int { return len(s)}func (s MySlice) Swap(i, j int)原创 2021-01-14 15:58:17 · 178 阅读 · 0 评论 -
经典dp--字符串系列之Go写法
字符串系列–经典dp系列GO写法在这里我目前碰到了两个比较像的字符串dp处理的问题,分别是编辑距离和最长公共子序列,这两个问题结构很相似,都是借助二维数组来保存状态,根据这种状态来转移更新。下面来看看这两个题怎么解吧。PS:画个矩阵出来比一比更加形象生动!!!Edit Distance该题编辑距离,这道题连接和题目描述见原链接(标题)首先,我们定义一个dp数组,大小为m = len(word1), n = len(word2)。dp[i][j]的含义表示子串word1[0:i]和word2[0:j原创 2020-10-08 22:16:51 · 600 阅读 · 0 评论 -
经典dp--不同路径系列之Go写法
经典dp–不同路径系列之GO写法uniquePaths这是一个dp问题,最重要的是需要找到一个状态转移方程。从题目可见,机器人只能向右或者向左走,因此对于到达某一个节点,其主要有两条路径可以到达,也就是说从上面的节点以及左边的节点过来。而假定我们有一个dp二维数组,大小为m x n, 然后存储的值是到达这个节点的路径数目,根据上面所述,我们有状态转移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1] 特别地,这里可以使用优化空间版本的dp数组,也就是一个大小为n的一位数原创 2020-10-04 10:33:57 · 593 阅读 · 0 评论 -
经典dp--抢家夺舍系列之Go写法
抢家夺舍系列–经典dp系列GO写法house-robber首先我们从比较简单的角度来做:判断状态:题目只有两种状态,也就是偷或者不偷,所以我们可以创建一个二维的数组,并用0表示不偷,1表示偷数组的长度:这个实际上就是你房子的数量;状态转移方程:当你在第i家时,选择不偷时,dp[i][0]就是选择dp[i-1]中最大的一个,选择偷的话,前面那家肯定不能偷,因此dp[i][1] = nums[i] + dp[i-1][0]。所以有状态转移方程: dp[i][0] = Max(dp[i - 1]原创 2020-09-29 23:49:25 · 2001 阅读 · 0 评论