算法: 双指针 2024-04-09 默认分类 暂无评论 724 次阅读 ## 1. 利用元素集合的有序性质 [LeetCode: 167. 两数之和 II - 输入有序数组](https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/description/) [灵茶山艾府: 两数之和 三数之和【基础算法精讲 01】](https://www.bilibili.com/video/BV1bP411c7oJ/?spm_id_from=333.788&vd_source=f1a7951aa84af4793b91a3e046fcd901) 相向双指针算法,通过不断循环移动指针直到相加等于九, 巧妙利用有序性 通过一个元素排除一组元素。 时间复杂度为 `O(n)`, 空间复杂度为 `O(1)`。 ```Go func twoSum(numbers []int, target int) []int { left, right := 0, len(numbers)-1 for left < right { sum := numbers[left] + numbers[right] if sum == target { return []int{left + 1, right + 1} } else if sum > target { right-- } else { left++ } } return []int{-1} } ``` 标签: 算法 转载请注明文章来源 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭