笔试题算法题整理

【2022】小米秋招笔试-运维开发-卷2

【大白兔奶糖取法】(爬楼梯 动态规划)

复制代码
【大白兔奶糖取法】
问题描述: 
假设你有n个大白兔奶糖,每次最多拿走一个或者两个,你有多少种不同的方法拿完全部的大白兔奶糖?(注意求解方法的时间复杂度) 

输入描述: 
大白兔奶糖的个数n (1<=n<=50) 

输出描述: 
拿完全部的大白兔奶糖的方法数 

输入样例:
 2 

输出样例: 
2
go 复制代码
func climbStairs(n int) int {
    dp := make([]int,n+1)
    dp[0] = 1	// 拿一个
    dp[1] = 1	// 拿两个
    for i := 2; i < len(dp); i ++ {
        dp[i] = dp[i-1] + dp[i-2]
    }
    return dp[n] 

}

爬楼梯 动态规划问题

【 跳方格游戏】(Leetcode 45. 跳跃游戏 II 贪心算法)

复制代码
【 跳方格游戏】
问题描述:
小米公司在中秋节会有玩游戏领奖品的团队活动,增加部门凝聚力,其中今年中秋有一个游戏是这样的: 由游戏组织者在地上画一列竖排的方格,其中每个单独的方格上都标注着一个非负整数,==一开始你位于方格的起始位置,每一个方格的数字代 表你从该位置开始可以跳跃的最大方格数。你的目标是需要用最少的跳跃次数来达到最后一个方格。最少跳跃次数的同学可以赢得中秋小礼 品。 
其中一列的方格对应使用非负整数列表表示;起始位置为数组下标0的位置;假设你总是可以跳到数组的最后一个位置。 

输入描述: 
1
非负整数列表nums(1 <= nums.length <= 10^4, 0 <= nums[i] <= 1000),表示对应方格数字 

输出描述:
1
跳到最后一个方格的最小跳跃次数 

输入样例: 
1
[3, 2, 5, 4, 7] 

输出样例: 
1
2 
golang 复制代码
func res(nums []int) int {
	n := len(nums)
	end := 0
	maxPostion := 0
	steps := 0
	for i := 0; i < n-1; i++ {
			maxPostion = max(nums[i]+i,maxPostion)
			if i == end {
				end = max
				steps++
			}
	} 
	return steps
}
func max(a,b int) int {
	if a > b {
		return a
	}else {
		return b
	}
}
相关推荐
利威尔xu1 天前
Go map 底层崩溃:3 个 goroutine 并发写同一张 map,fatal error 崩掉整个服务
golang·源码·map·并发·后端开发
利威尔xu2 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang
JWASX3 天前
【Go】map 源码解析 - group
后端·golang·map·源码分析
联犀4 天前
纯 Go 的 CAD 开源库 go-cad:直接解析 DWG/DXF,现在也能导出 PDF
开发语言·golang·pdf
FungLeo4 天前
成为全栈·Go 后端篇·三轮代码审阅之后:把可读性和证据做成工程规则
golang·go·ast·静态检查·成为全栈·代码审阅
联犀4 天前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
紧跟先前的步伐5 天前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
利威尔xu5 天前
2026-11-05-Go内存管理面试
面试·golang
Zenova EdgeOS7 天前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
JavaPub-rodert7 天前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang