算法通关村番外篇-LeetCode热题100系列一

大家好我是苏麟 , 今天开始出这个LeetCode热题100系列 .

LeetCode热题100 , 是LeetCode的热门题目也是面试比较爱考的 .

大纲

    • 两数之和

两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

LeetCode 两数之和 :

算法通关村番外篇-LeetCode热题100系列一_第1张图片

代码 :

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
        //讨论特殊情况
        if (nums == null || nums.length == 0) {
            return res;
        }
        //使用一个Map来记录数组的值和索引值
        Map<Integer,Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            //定义一个临时变量
            int temp = target  - nums[i];
            //更新res数组
            if (map.containsKey(temp)){
                res[0] = i;
                res[1] = map.get(temp);
                break;//结束循环
            }
            map.put(nums[i],i);
        }
        return res;
    }
}

这期就到这里 , 下期见!

你可能感兴趣的:(算法村,算法,leetcode,数据结构,java)