Leetcode(C ) 1 兩數之和

2021-09-11 07:28:03 字數 925 閱讀 3314

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

方法一:暴力解法

遍歷陣列中每乙個元素i,從陣列剩餘元素中尋找等於target-i的元素。

時間複雜度為o(n2)。

class solution 

}} return result;

}};

方法二:首尾遞進查詢

1、陣列排序

2、兩個指標i j分別從排序陣列開始和末尾向中間遍歷

3、若nums[i]+nums[j]時間複雜度為o(nlogn)。

class solution 

if(num_pos[t] == nums[j])

}break;

}else if(nums[i] + nums[j] < target)

else

} return result;

}};

方法三:map法

遍歷陣列的元素i,如果target-nums[i]存在於map中,則返回i和map中對應的下標;否則把該元素存到map中。

時間複雜度為o(n)。

class solution 

else num_map[nums[i]] = i;

} return result;

}};

題目不是太難,不過方法有些並沒那麼簡單想到,小白慢慢打基礎中,歡迎大佬批評斧正!

LeetCode C 刷題計畫 1 兩數之和

author csu張揚 email csuzhangyang gmail.com or csuzhangyang qq.com 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找 出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你...

1 兩數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 解class solution hash nums i...

1 兩數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 由於元素不能重複利用,所以使用j i 1,通過雙迴圈,...