版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BaiHuaXiu123/article/details/88540304
题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路
思路1.采用hash结构求解
思路2.利用双层循环求解
Rust实现
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
let mut rev =vec![-1i32;2];
for i in 0..nums.len() {
let mut a = target - nums[i];
for k in i+1..nums.len() {
if a == nums[k] {
rev[0]=k as i32;
rev[1]=i as i32;
return rev
}
}
}
rev
}
}
Go语言
func twoSum(nums []int, target int) []int {
var res = []int{-1,-2}
for i:=0;i<len(nums);i++ {
temp := target - nums[i]
for j:=i+1;j<len(nums);j++ {
if temp == nums[j]{
res[0]=j
res[1]=i
return res
}
}
}
return res
}
Python语言
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
result_nums = []
length = len(nums)
for x in range(length):
for y in range(x+1,length):
if nums[x] + nums[y] == target:
result_nums.append(x)
result_nums.append(y)
return result_nums
JavaScript语言
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for(let i = 0;i<nums.length;i++){
for(let j=i+1;j<nums.length;j++){
if(nums[i] + nums[j] === target){
return [i,j];
}
}
}
};
效果