【代码随想录】LC 1. 两数之和

文章目录

  • 前言
  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解

前言

本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记,如有侵权,立即删除。

一、题目

1、原题链接

1. 两数之和

2、题目描述

在这里插入图片描述

二、解题报告

1、思路分析

(1)暴力解法,两层for循环枚举,时间复杂度O(n2)。
(2)利用哈希表,由于本题中判断条件是数组值满足一定条件,而返回的是数组下标,所以需要利用可以存储键值对的map类型等数据结构来模拟哈希表,而unordered_map底层为哈希表,存取效率O(1)。所以我们可以先将元素都放入哈希表中,然后来依次判断值为target-nums[i]的元素是否在哈希表中存在(注意:此时需要另外判断这两个元素不能相同),若存在则返回答案。若不存在,继续遍历。若遍历完仍未返回答案,则返回空数组。

2、时间复杂度

时间复杂度O(n)

3、代码详解

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> m;     //哈希表//将所有元素放入哈希表中for (int i = 0; i < nums.size(); i++) {//unordered_map查找时以key查找,所以key设置为数组值m.insert(pair<int, int> (nums[i], i));}//遍历数组for (int i = 0; i < nums.size(); i++) {auto iter = m.find(target - nums[i]);//如果target-nums[i]该值存在于哈希表中,而且于i不是同一元素,则返回答案   if (iter != m.end() ) {  //注意:该判断条件的等价形式不可写在外层if条件中,否则可能会造成运行错误//因为可能会造成iter—>second的越界访问(迭代器越界(尾迭代),从而访问不到second)if(iter->second ==i) continue;return {i, iter->second};}}return {};}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448389.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(6)Elastix图像配准:可视化配准工具

文章目录 前言一、配准工具1.1、基于Elastix的可视化配准工具1.1.1、elastix-napari&#xff1a;基于napari的Elastix图像配准1.1.2、SlicerElastix&#xff1a;基于3D slice的Elastix图像配准1.1.3、BIRDS&#xff1a;基于ImageJ的Elastix双通道图像配准 1.2、基于ITK开发的配…

input框前面名字长短不一时,让上下input框对齐方法

没设置之前 设置之后&#xff1a; 代码如下&#xff1a; <style>div{width: 500px;}label {display: block; /* 设置 label 元素为块级元素 */text-align: right; /* 设置文本右对齐 */margin-bottom: 10px; /* 设置标签之间的间距 */} </style> </head><…

springboot 文件差异化对比以及可视化展示

maven依赖 <!-- 文件内容对比--><dependency><groupId>io.github.java-diff-utils</groupId><artifactId>java-diff-utils</artifactId><version>4.11</version></dependency>创建Diff 工具类 package com.system.ut…

C++ copy()函数详细介绍

copy() 是一个标准库函数&#xff0c;位于 头文件中。它用于将一个容器中的元素复制到另一个容器中&#xff0c;或者将一个范围内的元素复制到另一个范围中。 函数参数介绍 copy( first, last, d_first );first 和 last&#xff1a;表示输入范围的迭代器。 first 指向要复制的…

python脚本将照片按时间线整理

说明&#xff1a;有一次自己瞎折腾&#xff0c;然后把服务器相册搞崩了&#xff0c;后来做了备份同步给找了回来&#xff0c;但是相册的时间线全乱了&#xff0c;看起来非常难受。所以就想通过文件夹的形式把照片重新分类&#xff0c;分类后的结构如下(红色字体为文件夹)&#…

openmax

通过EmptyThisBuffer传递未解码的buffer给component&#xff0c;component收到该命令后会去读取input port buffer中的数据&#xff0c;将其组装为帧之后进行解码&#xff0c;buffer处理完成后会通过EmptyBufferDone通知上层输入使用完成&#xff0c;上层收到命令可以继续送输入…

Duplicate entry ‘2020045-2-1‘ for key ‘index_uid‘ 解决方案

项目场景&#xff1a; 今天小编在工作中编写接口对数据库增加相同的非主键数据的时候&#xff0c;突然出现了这样的一个错误&#xff1a; 下面我来给大家解答这个错误的出现原因以及解决办法。 问题描述 Duplicate entry 2020045-2-1 for key index_uid 这个错误大概意思就是…

举个栗子!Tableau 技巧(263):按需突出显示文本表的 N 个行

我们分享过 &#x1f330; &#xff1a;突出显示文本表的行或列&#xff0c;可以突出显示文本表中的某一行或某一列。有数据粉提出新的问题&#xff1a;如果想突出显示多行数据&#xff0c;该如何实现呢&#xff1f; 在 Tableau 中是可以实现的&#xff08;如上图&#xff09;&…

MySQL主从同步

一、配置主服务器 1、更改配置文件 vi /etc/my.cnf [mysqld] server_id100 log-bin/mnt/data/mysql8_data/log-bin 2、重启MySQL service mysql restart 3、创建主从同步用户 CREATE USER rep% IDENTIFIED BY Future2050; GRANT REPLICATION SLAVE ON *.* TO rep%; 4、查询Mas…

Linux下find命令详解

find #查找文件 #按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 格式&#xff1a; find 查找路径 查找条件 具体条件&#xff08;按文件名或时间大小等&#xff09; 操作 注意&#xff1a; find命令默认的操作是print输出 find是检索…

2024/2/2学习记录

Mock.js Mock.mock(template) 根据数据模板生成模拟数据 Mock.mock(rurl,template) 记录数据模板&#xff0c;当拦截到 rurl 的 ajax 请求时&#xff0c;将根据数据模板 template 生成模拟数据&#xff0c;并作为响应数据 返回 Mock.mock(rurl,function(options)) 记…

OpenCV-Python图形图像处理:自用的一些工具函数源代码(统信UOS Linux版)

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 在《OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍》介绍了笔者自用的一些函数的语法及功能,在《OpenCV-Python图形图像处理:自用的一些工具函数源代码》介绍了老猿实现的代…