我正在研究LeetCode的二和問題,給定一個(gè)整數(shù)數(shù)組nums和一個(gè)整數(shù)目標(biāo),返回兩個(gè)數(shù)字的索引,使它們相加到目標(biāo)。
Test Case:
[2,7,11,15] 9
[3,2,4] 6
[3,3] 6
MY Code:
import java.util.Arrays;
class Solution {
public int[] twoSum(int[] nums, int target) {
Arrays.sort(nums);
int left = 0;
int right = nums.length-1;
for(int i : nums){
int sum = nums[left]+nums[right];
if(sum == target)
return new int[]{left+1,right};
else if(sum > target)
right--;
else
left++;
}
return new int[]{0,0};
}
}
除了第二個(gè)測(cè)試用例【2,3,4】6之外,此代碼正在通過所有測(cè)試用例,無論我做了什么,它都無法解決,所以請(qǐng)有人幫我解決這個(gè)問題。
我認(rèn)為你可以用更好的方法解決它。
我的解決方案表明,首先選擇列表的第0個(gè)元素;然后在嵌套循環(huán)中,用1、2、…、。。。,查看其總和是否等于目標(biāo)值。如果是,則返回結(jié)果,如果不是,則重復(fù)循環(huán)。
例如,在
[3,2,4] 6
測(cè)試用例中: