美文网首页LeetCode
leetCode1两数之和

leetCode1两数之和

作者: 丹青水 | 来源:发表于2018-07-20 10:59 被阅读0次

    1 两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    

    暴力破解法

        /**
         * 时间复杂度n的平方
         * 空间复杂度n
         */
         
         public int [] findIndex(int a[],int sum){
             for(int i=0;i<a.length;i++){
                 for(int j=i+1;j<a.length;j++){
                     if((a[j]+a[i])==sum){
                         return  new int[] {i,j};
                     }
                 }
             }
           return null;
         }
    

    空间换时间方法

        /**
         * 时间复杂度n
         * 空间复杂度n
         */
        public int [] findIndex2(int a[],int sum){
            HashMap hashMap=new HashMap();
            for(int i=0;i<a.length;i++){
                if(hashMap.containsKey(sum-a[i])){
                    return  new int[] {i,(int)hashMap.get(sum-a[i])};
                }
                hashMap.put(a[i],i);
            }
            return null;
        }
    
    

    相关文章

      网友评论

        本文标题:leetCode1两数之和

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