美文网首页
第三十二天 复习Two Sum

第三十二天 复习Two Sum

作者: 业余马拉松选手 | 来源:发表于2018-09-24 00:33 被阅读9次

    嗯,终于要开始再撸一遍之前的题目了

    这一轮就开始用Java吧,“本命”语言,哈哈

    这道题估计是刷leetcode几率最高的一道题了吧,因为是第一题,哈哈

    第一种思路,还是用Map来记录,这道题在写的时候,有三个语法的地方已经不太熟悉了

    1. Java中的Map判断key存在的方法是 containsKey()
    2. 创建一个指定长度的数组 int[] ret = new int[2];
    3. 数组的长度是属性,不是方法;

    这些基础的东西不经常写,确实会忘呀

    class Solution {
        public int[] twoSum(int[] nums, int target) {
            Map<Integer,Integer> map = new HashMap<>();
            int[] ret = new int[2];
            for(int i=0;i<nums.length;i++){
                if(map.containsKey(target-nums[i])){
                    ret[0] = map.get(target-nums[i]);
                    ret[1] = i;
                    return ret;
                }else{
                    map.put(nums[i],i);
                }
            }
            return ret;
        }
    }
    

    算法本身没有什么值得说的,还是要能一遍bug free才是真章,基本功呀

    当然还有一种方法就是排序后的双指针法?好吧,如果排序的话,其实是有问题的,因为就会丢到原来值和索引的对应关系 😂
    好吧,看来还是我太嫩了,这道题感觉还是没完全吃透

    相关文章

      网友评论

          本文标题:第三十二天 复习Two Sum

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