2021-05-01:给定一个有序数组arr,代表坐落在X轴上的点。给定一个正数K,代表绳子的长度。返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住。
2021-05-01:给定一个有序数组arr,代表坐落在X轴上的点。给定一个正数K,代表绳子的长度。返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住。
福大大 答案2021-05-01:
滑动窗口。窗口只会变大或者不变,不会变小。最后右指针位置减去左指针位置,就是需要返回的长度。
代码用golang编写。代码如下:
package main
import "fmt"
func main() {
arr := []int{1, 4, 5, 6, 9, 10, 12, 17}
ret := maxPoint(arr, 4)
fmt.Println(ret)
}
func maxPoint(arr []int, num int) int {
arrLen := len(arr)
L := 0
R := 0
for R < arrLen {
if arr[R]-arr[L] > num {
L++
}
R++
}
return R - L
}
执行结果如下:
公众号:福大大架构师每日一题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具