日刷leetcode--简单版(六)
返回总目录
167. 两数之和 II - 输入有序数组
题目描述
解题思路
- 定义双指针,分别在头部与尾部
- 判断两个的和是否与
targent
相等,相等级返回,比sum大则尾指针前移,反之头指针后移示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15func twoSum(numbers []int, target int) []int {
l, r := 0, len(numbers)-1
for l < r {
sum := numbers[l] + numbers[r]
if sum == target {
return []int{l + 1, r + 1}
}
if sum < target {
l++
} else {
r--
}
}
return []int{-1, -1}
}运行结果
执行用时 :4 ms, 在所有 Golang 提交中击败了97.30%的用户
内存消耗 :3 MB, 在所有 Golang 提交中击败了68.38%的用户
168. Excel表列名称
题目描述:
解题思路
可以看做一个10进制转26进制问题,进制转换原理可查看-> 理解进制转换的原理
复杂度分析
时间复杂度:O(1)
空间复杂度:O(1)
示例代码
1
2
3
4
5
6
7
8
9func convertToTitle(n int) string{
var str string
for n > 0 {
n -- // 减去一个,因为A是对应的是1,而不是0
str = string('A' + int32(n%26)) + str
n/=26
}
return str
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 墨殇的技术博客!
评论
GitalkValine