题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解
思路
暴力遍历所有可能性 得到正确的结果就返回
代码
Java
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2];
if(nums == null || nums.length < 2){
return null;
}
for(int i = 0;i < nums.length-1;i++){
for(int j = i+1;j < nums.length;j++){
if(nums[i]+nums[j]==target){
res[0] = i;
res[1] = j;
return res;
}
}
}
return null;
}
}
JavaScript
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
var res = Array(2);
if(nums == null || nums.length < 2){
return null;
}
for(var i = 0;i <nums.length-1;i++){
for(var j = i+1;j < nums.length;j++){
if(nums[i]+nums[j]==target){
res[0] = i;
res[1] = j;
return res;
}
}
}
return null;
};
PHP
class Solution {
/**
* @param Integer[] $nums
* @param Integer $target
* @return Integer[]
*/
function twoSum($nums, $target) {
$res = array(2);
if($nums == null || count($nums) < 2){
return null;
}
for($i = 0;$i < count($nums)-1;$i++){
for($j = $i+1;$j < count($nums);$j++){
if($nums[$i]+$nums[$j]==$target){
$res[0] = $i;
$res[1] = $j;
return $res;
}
}
}
return null;
}
}