leetcode刷题记录01——两数之和(Java和JavaScript)

news/2024/7/19 14:48:54 标签: leetcode, hashmap, js

1. 两数之和

难度:简单

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
 

Java解法:

class Solution {
    public int[] twoSum(int[] nums, int target) {
      Map<Integer,Integer> hashmap=new HashMap<>(nums.length-1);
      hashmap.put(nums[0],0);
        for(int i=1;i<nums.length;i++){
            int another=target-nums[i];
            if(hashmap.containsKey(another)){
                return new int[]{hashmap.get(another),i};
            }else{
                hashmap.put(nums[i],i);
            }
        }
        throw new IllegalArgumentException("No two sum solution");
    }
}

JavaScript解法:

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    var numstore={};
    numstore[nums[0]]=0;
    // console.log(numstore);{ '2': 0 }
    for(var i=1;i<nums.length;i++){
        var another=target-nums[i];
        if(numstore[another]!==undefined){
            return [numstore[another],i];
        }else{
            numstore[nums[i]]=i;
        }
    }
};

思路:

1.创建一个map

2.用for循环遍历nums数组

3.算出another值(用target减去nums[i])

4.检查map里有没有这个数


http://www.niftyadmin.cn/n/1497936.html

相关文章

JavaScript_数组常用方法( 2 )

目录 数组常用方法 2 : 1. forEach( ) forEach 的原理 : 2. map( ) map 的原理 : 3. filter( ) filter 的原理 : 4. find( ) 5. every( ) 6. some( ) 7. reduce( ) reduce 原理 : ES6新增数组方法&#xff08;注意浏览器兼容&#xff09; includes() 图例 : 上一…

python如何运行py程序_IT程小编带你学python~运行Python程序

点击上面“蓝字”关注我们&#xff01;欢迎来到IT程小编的Python“编程”世界&#xff0c;很荣幸您能选择我作为开Python编程世界大门的钥匙。带你轻松快乐学编程&#xff01;今天为大家介绍运行Python程序。运行Python 程序有两种方式&#xff1a;交互式和文件模式交互式是指P…

glm 矩阵乘法得反过来写

转载于:https://www.cnblogs.com/makejeffer/p/7652771.html

论文阅读05——A Knowledge-Aware Attentional Reasoning Network for Recommendation

《A Knowledge-Aware Attentional Reasoning Network for Recommendation》 摘要&#xff1a; 知识图谱感知推荐系统最近越来越受到业界和学术界的关注。现有的知识感知推荐方法通常通过对知识图谱中用户与项之间的路径进行推理来进行推荐&#xff0c;取得了较好的效果。然而…

h5 展示html字符串_融新实验室|第十二期H5如何让文物活起来?

融新实验室欢迎来到本期的《融新实验室》。随着多媒体技术的发展&#xff0c;越来越多的新媒体平台与各大博物馆进行双边联动&#xff0c;充分利用文物数字资源&#xff0c;辅以全新的互动传播方式&#xff0c;让受众能以更直观、更有趣的方式了解我国珍贵的文物瑰宝&#xff0…

Vue _ 教程版 01 基础

目录 目标 一、Vue 基础 1.1、介绍 1.2、声明式渲染和组件化 1.3、MVVM 模式 二、Vue 基础使用 2.1、传统 Dom 操作 2.2、使用 Vue 实现 2.3、vue devtools 工具安装 2.4、Vue 实现数据绑定的原理 图例 : 跳转链接 > Vue _ 教程版 02 指令 跳转链接 > Vue …

lamp生产环境部署

CentOS 6: # yum -y install httpd php php-mysql mysql-server CentOS 7: # yum -y install httpd php php-mysql mariadb-server httpd 2.4 支持php-fpm # yum -y install httpd php-fpm php-mysql mariadb-server CentOS 6&#xff1a; PHP-5.3.2-&#xff1a;默认不支持fpm…

leetcode刷题记录02——两数相加(JavaJavaScript)

2. 两数相加 难度&#xff1a;中等 给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。 如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来…