給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
方法一:暴力法
#include
#include
int*
twosum
(int
*nums,
int target,
int numsize)}}
return a;
}int
main()
printf
("enter target:");
scanf
("%d"
,&target)
; b=
twosum
(nums, target, numsize)
;printf
("%d %d"
, nums[
*b],nums[
*(b+1)
]);free
(nums)
;free
(b);
return0;
}
8.9.1雜湊表查詢定義
雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f(key)。這種對應關係f成為雜湊函式(雜湊函式)。
按照這個思路,採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續儲存空間稱為雜湊表或者雜湊表。
8.9.2雜湊表查詢步驟
1、在儲存時,通過雜湊函式計算記錄的雜湊位址,並按此雜湊位址儲存該記錄。不管什麼記錄,我們都需要用同乙個雜湊函式計算出位址再儲存。
2、當查詢時,通過同樣的雜湊函式計算記錄的雜湊位址,按此雜湊位址訪問該紀錄。
雜湊技術最適合的求解問題是查詢與給定值相等的記錄。
缺點:1)同樣的關鍵字,對應很多記錄的情況
2)範圍查詢
3)衝突問題:key1!=key2; f(key1)=f(key2)
演算法1 兩數之和
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
leetCode演算法 1 兩數之和
推薦閱讀 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 ...
leetcode演算法 1 兩數之和
題目如下給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2 7,11 15 target 9因為 nums 0 nums 1...