兩數之和(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
- LeetCode - 兩數之和LeetCode
- 兩數之和詳細解答
- 每日一道演算法題:1.兩數之和演算法
- LeetCode 演算法 | 兩數之和不簡單啊LeetCode演算法
- LeetCode 1 兩數之和LeetCode
- leetcode #1 兩數之和LeetCode
- LeetCode之兩數之和LeetCode
- 雜湊查詢 兩數之和
- 簡單演算法題:leetcode-1 兩數之和演算法LeetCode
- Go語言效能優化-兩數之和演算法效能研究Go優化演算法
- 演算法題:三數之和演算法
- LeetCode: Two sum(兩數之和)LeetCode
- LeetCode 1. 兩數之和LeetCode
- 兩數之和,返回陣列下標陣列
- LeetCode-1. 兩數之和LeetCode
- [LeetCode] Two Sum 兩數之和LeetCode
- 力扣演算法經典第一題——兩數之和(Java兩種方式實現)力扣演算法Java
- 圖解兩數之和:雙指標法圖解指標
- 圖解兩數之和:雜湊表法圖解
- leetcode-0001 兩數之和LeetCode
- 組隊刷LeetCode - 兩數之和LeetCode
- LeetCode 1 兩數之和(簡單)LeetCode
- 演算法幾個數之和是某個數演算法
- [LeetCode 刷題] 1. 兩數之和LeetCode
- 演算法之陣列——三數之和演算法陣列
- 挑戰演算法題:四數之和演算法
- 【簡單演算法】1.兩數之和,給定整數陣列和目標值,找出陣列中2數之和等於目標值的元素演算法陣列
- 用 PHP 在 力扣 上演算法 [兩數之和]{一天一更}PHP力扣演算法
- 每日一道 LeetCode (1):兩數之和LeetCode
- #leetcode刷題之路1-兩數之和LeetCode
- LeetCode每日一題:兩數之和(No.1)LeetCode每日一題
- python leetcode 之兩數之和(two sum)PythonLeetCode
- leetCode解題記錄1 - 兩數之和LeetCode