LeetCode每日一題 (32)1. 兩數之和
方法一:暴力迴圈
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> result;
for(int i=0;i<nums.size();i++){
for(int j=i+1;j<nums.size();j++){
if(nums[i]+nums[j]==target){
result.push_back(i);
result.push_back(j);
return result;
}
}
}
return result;
}
};
方法二:前後查詢
class Solution {
public:
// 1. 先對陣列排一下序
// 2. 由於陣列沒有同一元素,可以【i向後,j向前 進行查詢兩個元素】
// 3. 然後在原陣列裡找到兩個元素的位置 返回結果
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> result;
vector<int> oldnums=nums;
sort(nums.begin(), nums.end());
int i=0,j=nums.size()-1,a,b;
//找到兩個元素
while(i<j){
if(nums[i]+nums[j]==target){
a=nums[i];
b=nums[j];
break;
}
if(nums[i]+nums[j]<target){
i++;
}
else{
j--;
}
}
// 找到兩個元素的位置
for(i=0;i<oldnums.size();i++){
if(oldnums[i]==a||oldnums[i]==b){
result.push_back(i);
}
}
return result;
}
};
方法三:雜湊表
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hashtable;
for (int i = 0; i < nums.size(); ++i) {
auto it = hashtable.find(target - nums[i]);
if (it != hashtable.end()) {
return {it->second, i};
}
hashtable[nums[i]] = i;
}
return {};
}
};
相關文章
- [LeetCode 刷題] 1. 兩數之和LeetCode
- LeetCode每日一題:兩數之和(No.1)LeetCode每日一題
- LeetCode 1. 兩數之和LeetCode
- 每日一道演算法題:1.兩數之和演算法
- LeetCode-Python 1. 兩數之和LeetCodePython
- 每日一道 LeetCode (1):兩數之和LeetCode
- [演算法] LeetCode 1.兩數之和演算法LeetCode
- leetcode 解題 1.兩數之和-python3 兩種解法 @ 官方LeetCodePython
- 1. 兩數之和
- LeetCode 每日一題,用 Go 實現兩數之和的非暴力解法LeetCode每日一題Go
- 【新手小白刷leetcode記錄貼】 1.兩數之和LeetCode
- LeetCode - 兩數之和LeetCode
- LeetCode:兩數之和LeetCode
- LeetCode題集-1- 兩數之和LeetCode
- 1.兩數之和 Two Sum
- Leetcode第一題:兩數之和(3種語言)LeetCode
- leetcode #1 兩數之和LeetCode
- LeetCode 1 兩數之和LeetCode
- LeetCode之兩數之和LeetCode
- LeetCode-兩數之和LeetCode
- #leetcode刷題之路1-兩數之和LeetCode
- leetCode解題記錄1 - 兩數之和LeetCode
- LeetCode 之 JavaScript 解答第一題 —— 兩數之和(Two Sum)LeetCodeJavaScript
- LeetCode: Two sum(兩數之和)LeetCode
- LeetCode-1. 兩數之和LeetCode
- leetcode-0001 兩數之和LeetCode
- 【LeetCode】每日一題129:求根到葉子節點數字之和LeetCode每日一題
- 每日一道演算法, 《兩數之和》演算法
- 用python手刃Leetcode(1):兩數之和【簡單題】PythonLeetCode
- 2020/10/31·Leetcode·兩數之和LeetCode
- LeetCode 1 兩數之和(簡單)LeetCode
- 組隊刷LeetCode - 兩數之和LeetCode
- 20241107,LeetCode 每日一題,使用 Go 計算兩數相加LeetCode每日一題Go
- 10.5 每日一題 18. 四數之和每日一題
- 簡單演算法題:leetcode-1 兩數之和演算法LeetCode
- python leetcode 之兩數之和(two sum)PythonLeetCode
- 2020-10-12 Leetcode 兩數之和LeetCode
- 【10月打卡~Leetcode每日一題】18. 四數之和(難度:中等)LeetCode每日一題