NC61 两数之和

两数之和

https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f?tpId=188&&tqId=38589&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking

二刷

import java.util.*;


public class Solution {
    /**
     * 
     * @param numbers int整型一维数组 
     * @param target int整型 
     * @return int整型一维数组
     */
    public int[] twoSum (int[] numbers, int target) {
        HashMap<Integer,Integer> map = new HashMap<>();
        int[] res = new int[2] ;
        for(int i=0;i<numbers.length;i++){
            if(map.containsKey(numbers[i])){
                res = new int[]{map.get(numbers[i])+1,i+1};
             }
             else{
                 map.put(target-numbers[i],i);
             }
        }
        return res;
    }
}

1.哈希哈希哈希

import java.util.*;


public class Solution {
    /**
     * 
     * @param numbers int整型一维数组 
     * @param target int整型 
     * @return int整型一维数组
     */
    public int[] twoSum (int[] numbers, int target) {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        int[] res = new int[2];
        for(int i=0; i<numbers.length ; i++){
            if(map.containsKey(target - numbers[i])){
                int small;
                int large;
                if( i> map.get(target - numbers[i])){
                    large = i;
                    small =  map.get(target - numbers[i]);
                }
                else{
                    small = i;
                    large =  map.get(target - numbers[i]);
                }
                res[0] = small+1;
                res[1] = large+1;
                return res;
            }
            else if (!map.containsKey(numbers[i])){
                map.put(numbers[i],i);
            }
        }
        return res;
    }
}
面试题解 文章被收录于专栏

面试题解

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务