1. 两数之和【return new int[]{i, j}、hashtable.containsKey()、get、put】

2023-05-16

1. 两数之和

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

示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]

提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?


在这里插入图片描述


C代码:

typedef struct{
    int key;
    int val;
    UT_hash_handle hh;
} HashEntry;

int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    HashEntry* head = NULL;
    HashEntry* out = NULL;
    
    int *arr = (int *)malloc(sizeof(int) * 2 );
    for (int i = 0; i < numsSize; ++i) {
        int gap = target - nums[i];
        HASH_FIND_INT(head, &gap, out);
        if (out == NULL) {
            out = (HashEntry *)malloc(sizeof(HashEntry));
            out->key = nums[i];  // 此时值才为key
            out->val = i;
            HASH_ADD_INT(head, key, out);
        } else {
            arr[0] = i;
            arr[1] = out->val;
            *returnSize = 2;  // 找到就应该立刻返回值
            return arr;
        }
    }
    *returnSize = 0;
    return NULL;
}

Java代码1: 暴力

class Solution {
    public int[] twoSum(int[] nums, int target) {
        for (int i = 0; i < nums.length; ++i) {
            for (int j = i + 1; j < nums.length; ++j) {
                if (nums[i] + nums[j] == target) {
                    return new int[]{i, j};
                }
            }
        }
        return new int[0];
    }
}

Java代码2:HashMap

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> hashmap = new HashMap<>();
        for (int i = 0; i < nums.length; ++i) {
            if (hashmap.containsKey(target - nums[i])) {
                return new int[]{hashmap .get(target - nums[i]), i};
            } else {
                hashmap.put(nums[i], i);
            }
        }
        return new int[]{};
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1. 两数之和【return new int[]{i, j}、hashtable.containsKey()、get、put】 的相关文章

  • 通过将变量名称“缝合”在一起来访问 C++ 中的变量

    假设我有一个变量 int fish5 7 我可以通过连接术语 fish 和 5 来访问fish5吗 理想的解决方案如下所示 printf I am displaying the number seven i fish 5 不 不完全是你想要
  • “放置”是否会覆盖现有值?

    哈希表新手 有一个简单的问题 由于某种原因 谷歌搜索没有给我一个直接的答案 假设我有一个
  • 如何转换 int 以返回字符串,这就是我们所说的 int

    我遇到过这个面试问题 面试官要求编写一个函数 该函数将接受一个整数 例如 123 并返回一个字符串 该字符串就是人们所说的整数 在上面的情况下 输出应该是 一百二十三 我不知道如何解决这些问题 任何人都可以帮助解决这个问题吗 伪代码会很有帮
  • 如果第一个“return”之后有一个“else”,那么性能是否重要?

    我现在看到了两种不同的方法来创建布尔返回方法 bool Case1 if A return true else return false bool Case2 if A return true return false 哪一个更快 不写还有
  • 使用 forEach() 返回数组值[重复]

    这个问题在这里已经有答案了 我希望返回存储在另一个对象中的数组的名称值 exports send function req res req body items forEach function item console log item
  • 构建哈希表/哈希函数

    我想构建一个哈希表 用于查找 1 到 15 个字节的字节序列 字符串 中的键 我想存储一个整数值 所以我想一个用于散列的数组就足够了 我很难概念化如何构造一个哈希函数 以便给定的键将给出数组的索引 任何帮助将不胜感激 哈希中的最大条目数为
  • Android:从软键盘中删除 Enter 键

    在我的登录表单中 当用户单击 EditText 并按 Enter 键时 会插入一个新行 从而增加 EditText 的大小 下一刻 它返回到之前的位置 并在密码字段 这是下一个字段 中打印一个点 我想从软键盘上删除这个回车键 是否可以 Us
  • 电子表格函数中返回数组

    下面的代码返回一个数组 我想在电子表格中使用它作为 Excel 公式来返回数组 但是 当我这样做时 它只将第一个值返回到单元格 无论如何 是否可以返回与数组大小相同的范围内的数组 Function LoadNumbers Low As Lo
  • Java && ||在 RETURN 语句中?

    我正在查看一些 Java 算法示例 并且在递归方法中遇到了以下代码片段 boolean subTree TreeNode t1 TreeNode t2 if t1 null return false if t1 value t2 value
  • 在 C 中,为什么不能像将字符串值分配给 char* 那样将整数值分配给 int* ?

    我一直在浏览该网站 但尚未找到此问题的答案 用一个例子来解释这个问题是最简单的 至少对我来说 我不明白为什么这是有效的 include
  • R.string.value 帮助 android 通知

    怎么了 CharSequence contentTitle R string value 错误无法从 int 转换为 CharSequence 有办法解决这个问题还是我错过了什么 我试过 String s R string value Ch
  • 整数比较值的输出错误

    我有以下代码 public static void doIntCompareProcess int a 100 int b 100 Integer c 200 Integer d 200 int f 20000 int e 20000 Sy
  • C++ 将数字转换为单词

    我在一本书中发现了这个将数字转换为单词的程序 初始程序转换数字 1 1000 但随后要求您修改程序以接受最多 1 000 000 的数字 我可以处理 20 999 以内的数字 但无法处理超过 20 999 的数字 我一整天都在修改它 并在网
  • 将 int(32 位)转换为 char(8 位)

    我有这些定义 int data uartBaseAddress UART DATA REGISTER 4 data coming from UART RX port char message 20 array of 20 chars 现在当
  • 尝试使用 max_element 计算数组中的最大数字时出错

    int a max element highesthuman 0 highesthuman 2 if win gt loss cout lt lt You won lt lt win loss lt lt games more than t
  • 浮点数的哈希函数

    我目前正在 C 中实现一个哈希表 并且正在尝试为浮点数创建一个哈希函数 我本来打算通过填充小数来将浮点数视为整数 但后来我意识到我可能会用大数字来溢出 有没有好的方法来散列浮点数 您不必直接给我该功能 但我想看到 理解不同的概念 Notes
  • C 递归函数不会返回 true

    我有一个搜索函数 它使用递归来执行数组的二分搜索 values for a value int recurseSearch int value int values int min int max if value gt values ma
  • Javascript 字符串到 int 的转换

    我在页面中嵌入了以下 JS var round Math round var id this attr id var len id length var indexPos len 1 index of the number so that
  • 如何在 C++ 中打印带前缀 + 的正数

    有没有办法在 C 中打印整数及其符号 即默认情况下 如果数字为负数 我们会得到一个 印有标志 同理我们可以得到 在正数之前 int x 1 cout lt lt x lt
  • 在 java 中返回多个原始对象。不推荐?

    我刚刚开始学习 Java 的 OOP 编程 我已经用 C 编写过一些程序 而我在 Java 中最怀念的事情之一就是可以返回多个值 确实 C 函数仅严格返回一个变量 但我们可以使用按引用参数返回更多变量 相反 在Java中我们不能做这样的事情

随机推荐

  • JVM中的堆和栈到底存储了什么

    JVM数据区 先上一张Java虚拟机运行时数据区中堆 栈以及方法区存储数据的概要图 xff0c 如下所示 xff1a 然后我们来具体解析一下堆和栈 堆 堆是存储时的单位 xff0c 对于绝大多数应用来说 xff0c 这块区域是 JVM 所管
  • 详解使用VS code搭建C语言环境遇到的那些坑(适合小白)

    Vs code搭建C语言环境 为啥想起来要装c环境 xff1f 是因为亲属家的大一新生小朋友问我关于c的问题 xff01 好吧 xff0c 学c语言那是20年前的事儿了 xff0c 但是在小朋友面前也不能跌份 xff0c 于是乎准备温习一下
  • # Android中的任务和返回栈总结

    Android中的任务和返回栈 任务栈的基础知识 xff1a 任务是指在执行特定作业时与用户交互的一系列 Activity 这些 Activity 按照各自的打开顺序排列在堆栈 xff08 即 返回栈 xff09 中 为什么要用任务栈 为了
  • 低成本DIY:4G/5G网络遥控无人机-无人车-图传/数传/遥控一体!

    方案概述 无人机 无人车 无人船等机器 通过数据线连接安卓手机 xff0c 手机4G上网于是就可以实现超远程图传 数传和遥控 再在控制端手机上通过 2R酷玩 App远程操控 如果你本来就有一套常规遥控器控制的无人机 无人车的东西 xff0c
  • 你知道底层自旋锁是如何实现的吗

    我们在开发中 xff0c 经常会用到自旋锁 xff0c 对于使用接口来讲 xff0c 仿照例子谁都会用 xff0c 但是你知道其是如何实现自旋的吗 xff1f 今天我们就来讨论一下其实现原理 1 首先 xff0c 我们需要实现一个结构体用于
  • Ardupilot IMU恒温控制代码学习

    目录 文章目录 目录 摘要 第一章原理图学习 第二章恒温代码学习 1 目标温度怎么设置 摘要 本节主要学习ardupilot的IMU恒温控制代码 采用的飞控是pixhawk v5 欢迎一起交流学习 第一章原理图学习
  • Windows10安装或重装ubuntu18.04双系统教程(平民教程)

    一 引言 1 电脑配置 操作系统 xff1a Win10专业版机型 xff1a Dell G3 15 3500显卡 xff1a NVIDIA GeForce GTX 1660Ti内存 xff1a 32G硬盘 xff1a 双硬盘 xff08
  • 不同国家的日期写法

    题目描述 对于年 月 日的写法 xff0c 不同的国家有不同的描述形式 请按年 月 日的顺序读入日期 xff0c 然后分别输出中国式写法 xff08 年 月 日 xff09 xff0c 英国式写法 xff08 日 月 年 xff09 和美国
  • 二维数组最大值及位置

    题目描述 有一个3 4的矩阵 xff0c 要求编程求出其中值最大的那个元素 xff0c 以及其所在的行号和列号 xff08 如果最大数有多个 xff0c 则显示第1个出现的数据的信息 xff09 输入要求 从键盘输入12个数字组成一个3 4
  • 比较两个字符串的大小

    题目描述 设计函数 xff0c 比较两个字符串的大小 每个字符串长度不超过50 输入要求 从键盘分别读入两个字符串 xff0c 每个字符串以换行符结束 输出要求 比较两个串的大小 xff0c 输出相应的结果 输入样例 Hello hi 输出
  • 心形曲线(java)

    心形曲线java简易表示法 span class token keyword import span span class token namespace java span class token punctuation span awt
  • c++运行不输出结果怎么办

    C C 43 43 运行不出结果怎么调试 main函数中可在各个地方插入return 0提前结束程序 xff0c 直到有结果出现 xff0c 问题就出在return 0的下方 如果在自定义函数内部 xff0c 则需要使用exit xff08
  • 如何解决VS2019控制台输出中文乱码问题

    情况一 xff1a 下载插件 xff0c 将VS的输出编码更改为UTF 8 情况二 xff1a 如果已经装了UTF 8插件但是控制台输出的中文仍然是乱码 则按以下步骤进行 xff08 1 xff09 打开电脑的控制面板 xff0c 然后打开
  • 如何解决vs2019 scanf报错问题

    1 在程序最前面加 xff1a define CRT SECURE NO DEPRECATE 2 在程序最前面加 xff1a pragma warning disable 4996 3 将scanf改为scanf s 4 无需在程序前面加那
  • 函数曲线的绘制

    初等函数曲线的简易绘制 span class token macro property span class token directive keyword include span span class token string lt s
  • 花里胡哨的IDEA 2021启动界面

    一 前言 作为一个花里胡哨的男人 xff0c 总是在不停的研究各种花里胡哨的东西 xff0c 每次上机第一件事 xff0c 肯定是打开开发神器 xff1a Intellij IDEA 2021 xff0c 每次打开都是一个图片 xff0c
  • java中常见排序算法

    一 冒泡排序 span class token comment 64 author liyong 64 date 2021年12月02日 23 33 span span class token keyword public span spa
  • linux下栈空间大小(ulimit)

    linux下栈空间大小 第一次写博客 xff0c 很多地方写的不好请多见谅 xff0c 希望这篇文章对大家有帮助 首先说下为什么会写linux下栈空间大小这个内容 在评审同事代码的时候发现代码中有两个函数互相调用 xff0c 且无法退出导致
  • 解决npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

    解决办法 https github com npm cli issues 4980 issuecomment 1145334203 解决步骤 xff08 1 xff09 找到装 node js 路径下的 npm cmd xff08 2 xf
  • 1. 两数之和【return new int[]{i, j}、hashtable.containsKey()、get、put】

    1 两数之和 给定一个整数数组 nums 和一个整数目标值 target xff0c 请你在该数组中找出 和为目标值 target 的那 两个 整数 xff0c 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 xff0c 数