Day07-06_13【CT】LeetCode手撕—1. 两数之和

目录

  • 题目
  • 1-思路
  • [2- 实现](#2- 实现)
    • [⭐1. 两数之和------题解思路](#⭐1. 两数之和——题解思路)
  • [3- ACM实现](#3- ACM实现)

题目


1-思路

哈希表

  • 利用哈希表存储 key 数组元素值 ------> value 数组下标
  • 遍历数组

2- 实现

⭐1. 两数之和------题解思路

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];

        // 哈希表
        Map<Integer,Integer> map = new HashMap<>();
        // 存 key 值 ------> value 下标


        // 遍历数组
        for(int i  = 0 ; i < nums.length ;i++){
            if(map.containsKey(target-nums[i])){
                res[0] = i;
                res[1] = map.get(target-nums[i]);
            }
            map.put(nums[i],i);
        }
        return res;
    }
}

3- ACM实现

java 复制代码
public class twoSum {

    public static int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];

        // 哈希表
        Map<Integer,Integer> map = new HashMap<>();
        // 存 key 值 ------> value 下标


        // 遍历数组
        for(int i  = 0 ; i < nums.length ;i++){
            if(map.containsKey(target-nums[i])){
                res[0] = i;
                res[1] = map.get(target-nums[i]);
            }
            map.put(nums[i],i);
        }
        return res;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入数组长度");
        int n = sc.nextInt();
        int[] nums = new int[n];
        for(int i = 0 ; i < n;i++){
            nums[i] = sc.nextInt();
        }
        System.out.println("输入目标和");
        int target = sc.nextInt();
        int[] forRes = twoSum(nums,target);
        for(int i : forRes){
            System.out.print(i+" ");
        }
    }
}
相关推荐
Luis Li 的猫猫5 分钟前
基于MATLAB的冰块变化仿真
开发语言·图像处理·人工智能·算法·matlab
郭涤生11 分钟前
并发操作的同步_第四章_《C++并发编程实战》笔记
开发语言·c++·算法
深思慎考13 分钟前
Linux——进程间通信(system V共享内存)
linux·服务器·算法
加减法原则1 小时前
求最大子数组和 | LeetCode刷题
算法
折枝寄北1 小时前
从零开始 | C语言基础刷题DAY1
c语言·开发语言·算法
.ccl2 小时前
蓝桥杯省赛真题C++B组2024-握手问题
c++·算法·蓝桥杯
arong_xu2 小时前
C++20 新特性总结
算法·c++20
hrrrrb2 小时前
【C语言】指针篇
c语言·数据结构·算法
神里流~霜灭2 小时前
下降路径最⼩和(medium)
数据结构·c++·算法·链表·贪心算法·动态规划
编程绿豆侠2 小时前
力扣HOT100之双指针:11. 盛最多水的容器
算法·leetcode·职场和发展