兩數之和(leecode)的演算法
兩數之和(leecode)的演算法
題目概述
給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
思路一(暴力演算法)
關於演算法題,第一就是用暴力演算法,當熟悉一下題目。
- 流程圖
- 程式碼實現
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i = 0;i < nums.length;i++) {
for(int j = i + 1;j < nums.length;j++) {
if(nums[i] + nums[j] == target) {
return new int[]{i,j};
}
}
}
return null;
}
}
思路2(Hash)
Hash演算法,用空間換取時間
- 流程圖
- 程式碼
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> keys = new HashMap<Integer,Integer>();
for(int i = 0;i < nums.length;i++) {
int targetKey = target - nums[i];
if(keys.containsKey(targetKey)) {
return new int[]{keys.get(targetKey),i};
}
if(!keys.containsKey(nums[i])) {
keys.put(nums[i],i);
}
}
return null;
}
}
相關文章
- 演算法-兩數之和演算法
- 兩數之和,三數之和,最接近的三數之和,四數之和
- [演算法] LeetCode 1.兩數之和演算法LeetCode
- 兩數之和
- 每日一道演算法, 《兩數之和》演算法
- LeetCode - 兩數之和LeetCode
- 兩數之和(TwoSum)
- LeetCode:兩數之和LeetCode
- LeetCode 演算法 | 兩數之和不簡單啊LeetCode演算法
- 一個小小的演算法題:求兩數之和演算法
- LeetCode-兩數之和LeetCode
- 1. 兩數之和
- leetcode #1 兩數之和LeetCode
- LeetCode 1 兩數之和LeetCode
- LeetCode之兩數之和LeetCode
- 簡單演算法題:leetcode-1 兩數之和演算法LeetCode
- 每日一道演算法題:1.兩數之和演算法
- 兩數之和詳細解答
- 力扣之兩數之和力扣
- leetcode-0001 兩數之和LeetCode
- LeetCode 1. 兩數之和LeetCode
- LeetCode: Two sum(兩數之和)LeetCode
- LeetCode-1. 兩數之和LeetCode
- Go語言效能優化-兩數之和演算法效能研究Go優化演算法
- Hash表實踐 —— 兩數之和
- 組隊刷LeetCode - 兩數之和LeetCode
- 2020/10/31·Leetcode·兩數之和LeetCode
- LeetCode 1 兩數之和(簡單)LeetCode
- 雜湊查詢 兩數之和
- 1.兩數之和 Two Sum
- leetcode演算法熱題--兩樹之和LeetCode演算法
- 力扣演算法經典第一題——兩數之和(Java兩種方式實現)力扣演算法Java
- 演算法題:三數之和演算法
- 程式碼隨想錄:兩數之和
- LeetCode題集-1- 兩數之和LeetCode
- [LeetCode 刷題] 1. 兩數之和LeetCode
- LeetCode-Python 1. 兩數之和LeetCodePython
- 2020-10-12 Leetcode 兩數之和LeetCode