演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
題目原地址:
可以把寫好的程式碼去這裡提交,驗證是否通過。
/**
* 首先想到的肯定是拿第一個元素與後面的依次加,看是否等於目標值,
* 然後再第二個、第三個...
*/
public int[] twoSum1(int[] nums, int target) {
for (int i = 0; i < nums.length - 1; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] {i, j};
}
}
}
return new int[]{0,0};
}
/**
* 把數值作為 key,它的下標作為 value
* 遍歷陣列,判斷 map 是否含有這個目標值-當前數值,
* 有直接返回,沒有的話放到map裡面
*
* 所以以後寫程式碼,如果有雙層 for 迴圈,首先考慮一下能否用 map 替換一層
*/
public int[] twoSum2(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(target - nums[i])) {
return new int[]{map.get(target - nums[i]),i};
}
map.put(nums[i], i);
}
return new int[]{0,0};
}
這個好像有點簡單
相關推薦
演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數、判斷一個整數是否是迴文數
<!-- 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9
前端演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數、判斷一個整數是否是迴文數
<!-- 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[
演算法1:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數的index值。
三種解決方法: 1、暴力法:遍歷每個num,查詢目標元素target-num class Solution: def twoSum(self, nums, target): """ :type nums: List[
演算法:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], tar
(python)給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數--演算法
1、使用最容易理解的遍歷陣列進行查詢 def solution(nums,target): #如果列表長度小於2,則直接結束 if len(nums) < 2: return #兩次迴圈列表,分別對列表中的所有可
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 個輸入只對應一種答
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] =
LeetCode:給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路:先在陣列中找出比target
2.給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 示例: 給定 nums = [2, 7, 11, 15], targ
class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { for (
【簡單演算法】1.兩數之和,給定整數陣列和目標值,找出陣列中2數之和等於目標值的元素
接觸了程式碼,那麼演算法始終是繞不開的一個重點。 演算法對於開發人員,在日常之中的作用很大,但是對於測試人員來說,實際編碼中用到的似乎不是很多。 不過,現在大廠的測試開發的面試,演算法是必考的,而且這也的確是你的程式碼功底的一項重要體現,學學沒壞處。 ![](https://img2020.cnblogs
有一個整數陣列,請你根據快速排序的思路,找出陣列中第K大的數。 給定一個整數陣列a,同時給定它的大小n和要找的K(K在1到n之間),請返回第K大的數,保證答案存在。
一, 原快速排序的實現 http://blog.csdn.net/taotaoah/article/details/50987837 using System; namespace taotao {
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數
目標 for循環 答案 [] 遍歷 一個 class tar 利用 題目描述: 給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。示例:給定 nums = [2, 7, 11, 15], targ
判斷一個字串是否為另外一個字串旋轉之後的字串。 例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回
判斷一個字串是否為另外一個字串旋轉之後的字串。例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0 方法一: 演算法思想:一個字串左旋,無非還是這個字串本身(長度未改變),並且字元本身未改變只是順序改變;申
Two sum(給定一個無重復數組和目標值,查找數組中和為目標值的兩個數,並輸出其下標)
輸出 dex 運行速度 n) 復數 target code color .get 示例: nums = [1,2,5,7] target = [6] return [0,2] 解決方案1: for i in range(len(nums)): rema
JS:一個字串由[a-z]組成,找出第一個只出現一次的字母
var mystr = 'asdasdasdwdascxc'; function fis(str){//97 var len = str.length; var arr = []; f
給定一個數組,找出陣列缺少的最小的正整數
題目使這樣的:請設計一個高效演算法,查詢陣列中未出現的最小正整數。 給定一個整數陣列A,請返回陣列中未出現的最小正整數。 測試樣例: [-1,2,3,4] 返回1 一看到這個題目我想到的是用另外的一個數組B,長度為A的長度+1,來儲存遍歷陣列A的數的值。 if(A[i]
程式設計基礎57 隨機選擇演算法,找出陣列第n/2大,並返回後一半減去前一半的值,複雜度o(n)
#include<cstdio> #include<cstdlib> #include<ctime> #include<algorithm> using namespace std; const int max_n = 1000
用 prompt 輸入字串,建立陣列,找出陣列中最大值,問題闡述與解決。
用 prompt 輸入字串建立陣列。用三種方法找出陣列中最大值。問題闡述與解決。 實現目標:輸入一組數,並找出這組數中最大的值。 採用的方法: 雙 for迴圈,列出從小到大(從大到小)順序。 單 for 迴圈,一遍迴圈找出最大值。 使用 Math.max。
輸入n個整數,找出其中最小的K個數
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int len=input.si
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。
解題思路: 1、最簡單方法,先排序,再取前k個,時間複雜度O(NlogN) class Solution { public: vector<int> GetLeastNumbers