LeetCode第167题,难度简单。
原题地址:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/
题目描述:
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。
说明:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
这里的思路就是嵌套遍历数组,两个索引i和j。固定i,然后移动j。如果数组在i和i-1两个位置的值相同,则跳过。如果i和j两个索引所对应的的数值相加等于target,则直接返回即可(而我在这里却只是break)。
中文官网题解:
https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/solution/
个人题解:
public class Solution {
public int[] twoSum(int[] numbers, int target) {
int[] result = new int[]{0,0};
for(int i = 0; i < numbers.length; i++){
if(i != 0){
if(numbers[i] == numbers[i - 1])
continue;
}
for(int j = i + 1; j < numbers.length; j++){
if(numbers[i] + numbers[j] == target){
result[0] = i + 1;
result[1] = j + 1;
break;
}
}
if(result[0] != 0 && result[1] != 0){
break;
}
}
return result;
}
}
结果:
运行结果还行吧,大家都太优秀了。