美文网首页
两数之和

两数之和

作者: 知识分享share | 来源:发表于2020-06-16 12:03 被阅读0次
    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    

    暴力

    public class Solution{
      public static void main(String[] args){}
      static int[] twoSum(int nums,int target){
          for(int i=0;i<nums.length;i++){
            for(int j=i+1;i<nums.length;j++){
              if(nums[j]==target-nums[i]){
                return new int[]{i,j};
              }
            }  
          }
          throw new IllegalArgumentException("No two sum solution");
      }
    }
    

    map缓存

      static int[] twoSum(int[] nums,target){
        Map<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<nums.length;i++){
            int complement = target - nums[i];
            if(map.containsKey(complement)){
                return new int[]{map.get(complement),i};
            }
            map.put(nums[i],i);
       }  
         throw new IllegalArgumentException("No two sum solution");    
      }
    

    相关文章

      网友评论

          本文标题:两数之和

          本文链接:https://www.haomeiwen.com/subject/zwulxktx.html