• LeetCode 1.两数之和(JS)


    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    

    先Po代码:

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number[]}
     */
    var twoSum = function(nums, target) {
        var	arr = {};
        for (var i = 0; i < nums.length; i++) {
            if (typeof(arr[nums[i]]) !== "undefined"){
                return [arr[nums[i]], i];                        
            }                         
            arr[target - nums[i]] = i;
        }
    };
    

    题解:

    这道题呢,用的是散列表的方式,循环一遍去找。

    但是一开始脑子抽了......太久没刷题, 啥也没考虑到,比如负数啦云云:(

    arr[target - nums[i]] = i;这个的核心是这句, 我用目标数-当前数,去寻找之后需要哪个数,并用下标设为它的值进行储存。(这里如果arr用数组的话,我试着也是可以的,但是应该进行了什么我目前还不知道的转换?所以耗时会多一点)

    然后接着开头判断,如果当前的nums[i]就是我们之前要找的target - nums[i],也就是它arr[sums[i]]会等于之前留存下的下标i, 否则为undefine(Ps: 这里不能偷懒简写 if (arr[nums[i]]), 因为要考虑到0值)

    很简单的题啦...太久没刷OJ了, 脑子都锈掉了, 立个Flag, 每周刷7道...

  • 相关阅读:
    (转)ASP.NET Mvc 2.0 1. Areas的创建与执行
    新世代交易管理機制~System.Transactions
    水晶報表入門
    MyGeneration 如何连接 mysql 来生成代码
    vs.net 启动不了
    Oracle面试问题-技术篇
    把excel两列字符数据用逗号合并起来
    论Leader的技能
    物流行业名词
    html 向aspx 页面传值
  • 原文地址:https://www.cnblogs.com/kiznaiver1998/p/8605809.html
Copyright © 2020-2023  润新知