LeetCode0167.两数之和 II - 输入有序数组
题目要求
算法分析
可以用双指针法,
分别指向头尾元素,如果两元素的和大于目标,尾指针前移,如果小于目标,头指针后移,等于目标即可得答案
代码展示(C#)
public class Solution { public int[] TwoSum(int[] numbers, int target) { if(numbers.Length == 0){return null;} int[] ret = new int[2]; int p1 = 0,p2 = numbers.Length - 1; while(p1 < p2){ int temp = numbers[p1] + numbers[p2]; if(temp == target){ ret = new int[2]{p1+1,p2+1}; break; } else if(temp < target){ p1++; } else if(temp > target){ p2--; } } return ret; } }
提交结果