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;
    }
}
面试题解 文章被收录于专栏

面试题解

全部评论

相关推荐

那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务