摘要:技能點中結構知識點聲明語句添加內容鑒定存在本例是把作為找到下標根據返回下標返回數組最終代碼建立在哈希表中遍歷每個元素,找到可能與之匹配成的下標
問題:
給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的兩個下標。你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個數組中同樣的元素。
思路
首先遍歷一次整數數組,將數組下標和值建立哈希表,再從頭遍歷一次哈希表,先得出當前讀取的位置i上對于target的差complement,得到后通過查看該值是否保存在哈希表的value中,若存在,返回該值的key,否則讀取下一元素。
技能點
1.java中HashMap結構知識點:
聲明語句: Mapmap = new HashMap<>();
添加內容: map.put(key,value);
鑒定存在: map.containsValues(value); //本例是把num[i]作為value
map.containsKey(key);
找到下標: map.get(value); //根據value返回下標
返回數組: return new int[]{num1,num2};
最終代碼:
public int[] twoSum(int[] nums, int target) { Mapmap = new HashMap<>(); //建立hashmap for (int i = 0; i < nums.length; i++) { map.put(nums[i], i); } //在哈希表中遍歷每個元素,找到可能與之匹配成target的下標 for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsValues(complement) && map.get(complement) != i) { return new int[] { i, map.get(complement) }; } } throw new IllegalArgumentException("No two sum solution"); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73223.html
摘要:最近時間準備面試,開始在上刷題了。思路將兩個數用轉換為二進制需要去除前面的,因為位數不同所以需要在前面補充一定位數的,然后將兩個字符串遍歷就可以直接得到漢明距離代碼 最近時間準備面試,開始在leetcode上刷題了。于是在segmentfault上寫點東西來記錄下。可能會有各種弱智情況,望指出。 Array Partition I題意:這個題目看原題實在沒有看懂,在網上找的翻譯,大致...
摘要:題意給出一串二進制數組,求數組中最長的連續的個數思路遍歷數組判斷,然后將值添加到長度保存數組中,取保存數組最大值。本題要考慮輸入的數組為的狀況。代碼題意給出一個,從里面獲取兩個數。 485 Max Consecutive Ones題意:給出一串二進制數組,求數組中最長的連續1的個數思路:遍歷數組判斷,然后將值添加到長度保存數組中,取保存數組最大值。本題要考慮輸入的數組為[0],[1]的...
摘要:思路先用將字符串分割,再遍歷,將字符串內每個單詞進行翻轉代碼題意給定一個字符串,將字符串按照翻轉,不翻轉的規則進行處理。思路先將字符串分段,然后再根據段落進行處理最后將字符串輸出。 344 Reverse String題意:給出一個字符串對字符串進行翻轉(reverse)思路:直接使用切片函數進行翻轉(網上看到的,具體怎么使用有點迷)[::-1]代碼:`class Solution(...
摘要:隨著互聯網的發展,各大廠的招聘要求也隨之水漲船高起來。但如今由于投身互聯網的人太多,入職互聯網公司的門檻水漲船高,國內公司向硅谷大廠招聘看齊,開始在面試中加入高水平的編程算法考量。 隨著互聯網的發展,各大廠的招聘要求也隨之水漲船高起來。 幾年前,做算法題還不是必備項,除了一些知名外企,大部分...
閱讀 1751·2021-09-27 14:02
閱讀 3100·2021-09-27 13:36
閱讀 1046·2019-08-30 12:46
閱讀 1834·2019-08-30 10:51
閱讀 3571·2019-08-29 17:02
閱讀 941·2019-08-29 16:38
閱讀 1846·2019-08-29 16:37
閱讀 3004·2019-08-26 10:32