給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
返回的是 [0 , 1] 兩個元素在原來陣列中的位置。
將輸入陣列,進行乙個從小到大排序,然後從陣列兩端值(left 與 right)開始進行相加,
若和小於目標值,陣列left++,指向下乙個較大的值,
若和大於目標值,陣列right–,指向下乙個較小的值。
#include
#include
#include
using namespace std;
int main()
cin >> e;
target = e;
// 求和為target的兩元素的下標。
int len = arr.
size()
; int left =
0, right = len -1;
vector
back
(arr)
;// 複製原來的陣列到back中。
sort
(arr.
begin()
, arr.
end())
;// 1、首先對原輸入陣列進行排序。從小到大
while
(arr[left]
+arr[right]
!= target)
// 若兩元素相加不等於目標值,觀察大於目標值還是小於目標值
vector res;
for(int i =
0; i < len; i++
)for
(int i =
0; i <
2; i++
)//輸出結果
return0;
}
測試輸出結果: 01 兩數之和
給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回...
01 兩數之和
難度 簡單 題目描述 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 n...
LeetCode 兩數之和 01
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...