数据结构与算法
hp_cpp
这个作者很懒,什么都没留下…
展开
-
Go语言:爱吃香蕉的珂珂
package main import ( "fmt" ) func canEatAll(piles []int, mid int, H int) bool { var sum int = 0 for i := 0; i < len(piles); i++ { sum = sum + (piles[i] - 1)/mid + 1 } ...原创 2019-10-15 08:26:18 · 182 阅读 · 0 评论 -
Go语言:数组中子数组的最大累乘积
题目: 给定一个double类型的数组arr,其中的元素可正、可负、可0,返回子数组累乘的最大乘积。例如,arr=[-2.5, 4, 0, 3, 0.5, 8, -1],子数组[3, 0.5, 8]累乘可以获得最大的乘积12,所以返回12。 package main import ( "fmt" ) func Max(x, y float32) float32 { if x &...原创 2019-10-15 08:24:56 · 164 阅读 · 0 评论 -
Go语言:打印N个数组整体最大的Top K
题目: 有N个长度不一的数组,所有的数组都是有序的,请从大到小打印这N个数组整体最大的前K个数。 例如,输入含有N行元素的二维数组可以代表N个一维数组。 219, 405, 538, 845, 971 148, 558 52, 99, 348, 691 再输入整数k=5, 则打印: Top 5: 971, 845, 691, 558, 538 package main import ( "c...原创 2019-10-13 22:10:56 · 822 阅读 · 0 评论 -
Go语言:如何仅用递归函数和栈操作逆序一个栈
【题目】: 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序, 但是只能用递归函数来实现,不能用其他数据结构。 本题的要求是用一个栈,如果用两个栈解决该问题,就更简单了。本题还有其他的解法。先记录一种常见的解法。 解法一: 设计两个递归函数: func getAndRemoveLastEleme...原创 2019-10-12 20:40:28 · 163 阅读 · 0 评论 -
go语言数据结构之栈的实现 栈
package main import ( "fmt" "log" ) type Stack struct { size int64 //容量 top int64 //栈顶 data []interface{} } func MakeStack(size int64) Stack { q := Stack{} q.size = size q.data = make([]in...转载 2019-10-12 12:02:52 · 459 阅读 · 0 评论 -
四个矿工过隧道的算法求解
四个矿工必须通过一条隧道。他们只有一盏提灯,隧道一次只能通过两人,而在通过隧道时必须提着提灯。他们不能在隧道里停下。一个矿工能用一分钟通过隧道,而其他人分别需要2、4和8分钟。当两个矿工一起通过时,只能按比较慢的矿工的速度前行。请问如何让四个矿工在15分钟内全部通过?请解释你的解决方案。 一看这样的题目,就是深度搜索加剪枝。 C++代码(为了更直观,都放在一个文件里,实际中应该分头文件和源文件) ...原创 2019-09-11 15:53:07 · 729 阅读 · 0 评论 -
用Go实现的冒泡排序算法——几种不同形式的冒泡
冒泡排序一直都是基础排序算法之一,在学习Go语言的时候,顺便把数据结构复习一下。 package main import "fmt" func main() { arr := []int{8, 4, 2, 9, 10, -3, 3, 20, 15, -1} BubbleSort3(arr) fmt.Println(arr) } func BubbleSort(arr []int)...原创 2019-09-13 16:28:02 · 137 阅读 · 0 评论 -
go语言实现--广度优先搜索迷宫
迷宫大致如下: 左上角和右下角的点分别为起点和终点,灰色的点代表墙,走不通,白色的点可以走通,我们要做的是从起点走到终点,我们每到一个点便从上左下右四个方向探索它周围的四个点,如果是走过的点我们不要探索,计算出它的步数,用的广度优先算法。 第一步:把起点(0,0)入队列,每次探索一个点,便把它出队列,坐标是行和列 第二步:把(0,0)出队列,开始探索(0,0),发现只有(1,0)走得通,把(1...转载 2019-09-14 20:23:16 · 248 阅读 · 0 评论