LeetCode:go算法题目实现

本文介绍了使用Go(golang)语言解决LeetCode上的算法问题,包括最长无重复字符子串(滑动窗口+哈希表)、等比数列求和解决小球落地高度总和问题、整数反转、利用goroutine交替打印偶数和奇数、以及用两个栈实现队列的方法。此外,还讨论了两数之和的解题思路。
摘要由CSDN通过智能技术生成

1、最长无重复字符子串:

解题思路:滑动窗口+哈希表(map)

func lengthOfLongestSubstring(s string) int {
	if len(s) == 0 {
		return 0
	}
	// 存储 left~right 中间的字符
	set := make(map[byte]bool)
	left := 0
	set[s[0]] = true
	maxLen := 1
	for right := 1; right < len(s); {
		b := set[s[right]]
		if !b {
			set[s[right]] = true
			right++
		} else {
			delete(set, s[left])
			left++
		}
		if right-left > maxLen {
			maxLen = right - left
		}
	}
	return maxLen
}

2、假设小球距地面的高度是h,每次落地反弹高度是上次的一半,计算第n次落地经过的高度总和

解题思路:等比数列求和

func computPathSum(h float64, n int) {
    sum := 0.0
    tmp := h
    for i := 1; i <= n; i++ {
        sum += tmp
        tmp = tmp * (0.5)
    }
    log.Info("高度总和", sum)
}<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值