128.Two Sum
生活随笔
收集整理的這篇文章主要介紹了
128.Two Sum
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
Given an array of integers, return?indices?of the two numbers such that they add up to a specific target.
給定一個整數數組,返回兩個數字的索引,使它們相加到特定目標。
You may assume that each input would have?exactly?one solution, and you may not use the?same?element twice.
您可以假設每個輸入只有一個解決方案,并且您可能不會兩次使用相同的元素。
Example:
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].解答:
1 class Solution { 2 public int[] twoSum(int[] nums, int target) { 3 int[] res=new int[2]; 4 HashMap<Integer,Integer> map=new HashMap<>(); 5 for(int i=0;i<nums.length;i++){ 6 if(map.containsKey(target-nums[i])){ 7 res[0]=i; 8 res[1]=map.get(target-nums[i]); 9 break; 10 } 11 map.put(nums[i],i); 12 } 13 return res; 14 } 15 }詳解:
暴力破解時間復雜度為O(n2),舍棄不用
HashMap是常數級的查找效率,只遍歷一個數字,另一個數字使用HashMap建立數字和其坐標位置之間的映射,所以時間復雜度為O(n)。
轉載于:https://www.cnblogs.com/chanaichao/p/9564644.html
總結
以上是生活随笔為你收集整理的128.Two Sum的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都欢乐谷恐高的人能玩吗
- 下一篇: 关于WKWebView高度的问题的解决