1. 兩數之和
給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
你可以按任意順序返回答案。
示例 1:
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
輸入:nums = [3,2,4], target = 6
輸出:[1,2]
示例 3:
輸入:nums = [3,3], target = 6
輸出:[0,1]
解題思路: 使用hashmap的key儲存目標的差,並記錄它的位置。等遍歷到目標差時就找到匹配的值。
class solution
nummap.put(target - nums[i], i);
}return result;}}
2. 三數之和
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有和為 0 且不重複的三元組。
注意:答案中不可以包含重複的三元組。
解題思路:注意點,不可以出現重複三元組。 先排序,在進行遍歷。有重複的值跳過。
class solution
arrays.sort(nums);
for(int first = 0; first < len; first++)
int third = len - 1;
int target = -nums[first];
for(int second = first + 1; second < len; second++)
while(second < third && (nums[second] + nums[third]) > target)
if(second == third)
if(nums[second] + nums[third] == target) }}
return result;}}
3. 四數之和
給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。
注意:答案中不可以包含重複的四元組。
示例:給定陣列 nums = [1, 0, -1, 0, -2, 2],和 target = 0。
滿足要求的四元組集合為:
[[-1, 0, 0, 1],
[-2, -1, 1, 2],
[-2, 0, 0, 2]
]解題思路:此題和三數相加類似, 通過剪枝和雙指標可以去除不必要的相加。
class solution
int len = nums.length;
arrays.sort(nums);
for(int first = 0; first < len - 3; first++)
if(nums[first] + nums[first + 1] + nums[first + 2] + nums[first + 3] > target)
if(nums[first] + nums[len - 1] + nums[len - 2] + nums[len -3] < target)
for(int second = first + 1; second < len - 2; second++)
if(nums[first] + nums[second] + nums[second + 1] + nums[second + 2] > target)
if(nums[first] + nums[second] + nums[len - 1] + nums[len -2] < target)
int left = second + 1, right = len - 1;
while(left < right) else if (sum > target) else
right--;
while(left < right && nums[left] == nums[left + 1])
left++;}}
}
}return result;}}
201512 1 數字之和
試題編號 201512 1 試題名稱 數字之和 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定乙個十進位制整數n,輸出n的各位數字之和。輸入格式 輸入乙個整數n。輸出格式 輸出乙個整數,表示答案。樣例輸入 樣例輸出 樣例說明 20151220的各位數字之和為2 0 1 5 ...
1106 數字之和
題目描述 對於給定的正整數 n,計算其十進位制形式下所有位置數字之和,並計算其平方的各位數字之和。輸入 每行輸入資料報括乙個正整數n 0 輸出 對於每個輸入資料,計算其各位數字之和,以及其平方值的數字之和,輸出在一行中,之間用乙個空格分隔,但行末不要有空格。樣例輸入 4 1297 39999 0 樣...
18 數字之和
18 數字之和 問題描述 輸入乙個正整數,求這個正整數的各位數字之和。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組測試資料為正整數,每行乙個n,n小於20000。輸出說明 對每組測試資料,你的程式需要向標準輸出檔案 通常為啟動該程式的文字終端 依次輸出一組對應的答案 輸...