給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。
你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因爲 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
代碼:
public class Solution
{
public int[] TwoSum(int[] nums, int target)
{
int[] a = {0,0};
for (int i = 0; i < nums.Length-1; i++)
{
for (int j = i + 1; j < nums.Length; j++)
{
if (nums[i] + nums[j] == target)
{
a[0] = i;
a[1] = j;
}
}
}
return a;
}
}
關鍵在於如何找出數組中和爲target的兩個元素(題目中假設一定會有答案)。
使用兩個循環,第二個循環的作用在於尋找是否有與前面第一個循環中固定數字所匹配的數。
但是所使用算法頗有不足,從運行速度到所佔內存都不理想。