【LeetCode】1. Two Sum

题目:

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.

从给定的一个整数数组中找出两个数,使得它们的和为target,并返回两个数在原数组中的下标

思路:

1. 对数组进行排序,为了方便获取排序后的原下标,采用multimap(map不允许重复的keys值)

    multimap不能用 [key] = value的方式来行赋值,但是map可以

2. 用两个游标(i = 0, j = size - 1)分别从数组的两头开始,如果

   1) nums[i] + nums[j] > target      大于目标值,则将j往前移一位

   2) nums[i] + nums[j] < target      小于目标值,则将i往后移一位

   3) nums[i] + nums[j] = target      完成~ 

 1 class Solution {
 2 public:
 3     vector<int> twoSum(vector<int>& nums, int target) {
 4         int nsize = nums.size();
 5         multimap<int, int> _n_i;
 6         for(int i = 0; i < nsize; i++)
 7             _n_i.insert(pair<int,int>(nums[i], i));
 8             
 9         vector<int> result;
10         multimap<int, int>::iterator _it_begin = _n_i.begin();
11         multimap<int, int>::iterator _it_end = _n_i.end();
12         --_it_end;
13         while(true){
14             int tmp = _it_begin->first + _it_end->first;
15             if(tmp < target)
16                 ++_it_begin;
17             else if(tmp > target)
18                 --_it_end;
19             else{
20                 int i = _it_begin->second;
21                 int j = _it_end->second;
22                 if(i > j){
23                     int _tmp = i;
24                     i = j;
25                     j = _tmp;
26                 }
27                 result.push_back(i);
28                 result.push_back(j);
29                 return result;
30             }
31         }
32     }
33 };

 

转载于:https://www.cnblogs.com/coolqiyu/p/5326903.html

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

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

相关文章

Java开发人员应了解的JVM流行语

本文将与您分享一些JVM“流行语”&#xff0c;它们对于Java开发人员在执行任何JVM性能和垃圾回收调优之前理解和记住非常重要。 本文末尾还提供了一些技巧&#xff0c;包括一些高级性能调优最佳实践。 将来的文章中将探讨有关Oracle HotSpot并发GC收集器&#xff08;例如CMS和G…

计算机制图笔记本需要什么配置,绘图笔记本需要什么配置?

ACER 宏碁型号 EX4630ZG-421G25MnCPU平台 Intel平台速度 T4200 2.00GHz系统总线 800MHz二级缓存 1MB屏幕尺寸 14寸类型 WXGA显示芯片 NVIDIA GeForce 9300M GS 独立显示芯片显存容量 独立256MB内存容量 1GB速度 DDR2硬盘容量 250G转速 5400转/分钟接口类型 SATA串行光存储 DVDR…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 项目结构&#xff1a; activity.html <!doctype html> <met…

算法属于计算机服务还是软件,第06讲 服务器软件设计的算法和问题

第06讲 服务器软件设计的算法和问题本文由&#xff32;&#xff49;&#xff43;&#xff48;&#xff41;&#xff52;&#xff44;&#xff10;&#xff10;&#xff17;&#xff3f;&#xff4c;&#xff49;&#xff4e;贡献&#xff50;&#xff50;&#xff54;&#xff…

那些遇到的position-fixed无效事件

本篇文章由&#xff1a;http://xinpure.com/position-fixed-encountered-an-invalid-event/ 第一次无效事件 事件主角: transform 应用环境: Chrome/FireFox 事件回顾: 这是在使用 iscroll js滚动库的时候&#xff0c;遇到的问题 当时的需求是需要在滚动到一定的距离的时候&…

spring rmi_Spring远程支持和开发RMI服务

spring rmiSpring远程支持简化了启用远程服务的开发。 当前&#xff0c;Spring支持以下远程技术&#xff1a;远程方法调用&#xff08;RMI&#xff09;&#xff0c;HTTP调用程序&#xff0c;Hessian&#xff0c;Burlap&#xff0c;JAX-RPC&#xff0c;JAX-WS和JMS。 远程方法调…

计算机dos通讯,PC双机通信DOS

《PC双机通信DOS》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《PC双机通信DOS(64页珍藏版)》请在人人文库网上搜索。1、1 第第9 9章章 串行通信接口串行通信接口 主要内容&#xff1a;主要内容&#xff1a;1 1、串行传送的基本概念、串行传送的基本概念 2 2、串行通…

用Paint Tool SAI绘制漫画

漫画绘图软件 Paint Tool SAI是一个来自日本的小巧的漫画辅助绘图软件&#xff0c;只有11M大小。 这个没有任何现成的模板和组件&#xff0c;只能自己一笔一笔的话&#xff0c;画笔、图层等功能与Photoshop类似&#xff0c;但没有PS其它大量功能&#xff0c;因此操作更加便捷&a…

【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【下篇】

简介&#xff1a;ECharts实现可视化大屏展示&#xff0c;包含人口分析&#xff0c;警情警力分析多张效果图&#xff0c; 完整的htmlcssjsimg:https://download.csdn.net/download/weixin_41937552/16361615 上一篇&#xff1a;【ECharts系列|02可视化大屏】 舆情分析&#xff0…

uts计算机博士,澳大利亚悉尼科技大学 (UTS) 招收2021/2022年 全奖博士生 (软件工程/人工智能方向)...

☞招收2022年第一学期入学&#xff0c;软件工程&#xff0c;人工智能方向csc博士生, 访问学生和全奖学生。学校介绍:澳大利亚悉尼科技大学(uts)座落于风景优美的悉尼市中心&#xff0c;毗邻darling harbour&#xff0c;中国城&#xff0c;悉尼歌剧院。uts是世界知名研究学府&am…

在WildFly上将JPA和CDI Bean与骆驼一起使用

我并没有真正为此计划&#xff0c;但是在一个免费的会议月份中&#xff0c;我有机会进行了一些深入的探讨&#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中Fi…

C#开发微信公众平台-就这么简单(附Demo)(转)

原文&#xff1a;http://www.cnblogs.com/xishuai/p/3625859.html 写在前面 阅读目录&#xff1a; 服务号和订阅号URL配置创建菜单查询、删除菜单接受消息发送消息&#xff08;图文、菜单事件响应&#xff09;示例Demo下载后记最近公司在做微信开发&#xff0c;其实就是接口开发…

【ECharts系列|03可视化大屏】大数据管理平台实时展示

基于echats实现可视化大数据管理平台实时展示。 完整htmlcssjsjsonfontvideo:https://download.csdn.net/download/weixin_41937552/16362433 项目结构&#xff1a; index.html <!DOCTYPE html> <html lang"en"> <head><link href"css/Bi…

计算机共享盒子,电脑之间如何共享文件

方法一&#xff1a;网上邻居共享1.这种方法比较适合家庭以及两台电脑之间文件的共享&#xff0c;权限管理比较简单&#xff0c;实现为了方便两台点之间共享。2.保证通信可用&#xff0c;需要做到两台电脑之间处于同一个网段内。3.具体操作&#xff1a;(1)右键【我的电脑】选择【…

在C#中开启事务

1.为什么要开启事务&#xff1a; 举一个简单的例子&#xff1a;在银行业务中&#xff0c;有一条记账原则&#xff0c;即又借有贷。为了保证这种原则&#xff0c;每发生一笔银行业务&#xff0c;就必须保证会计账目上借方科目和贷方科目至少个少一笔&#xff0c;并且这两笔要么同…

【ECharts系列|04可视化大屏】ECharts可视化经典案例总结

收集整理一些ECharts实现可视化大屏效果的一些经典案例&#xff0c;方便在工作的时候及时的响应客户&#xff0c;及修改展示&#xff0c;根据业务需求在此基础修改即可。 第一篇为Echarts入门文档&#xff0c;如果没有Echarts基础&#xff0c;理解起来比较费劲&#xff0c;这个…

云服务器带宽如何计算,云服务器怎么选择带宽

原标题&#xff1a;云服务器怎么选择带宽很多企业或站长在购买云服务器时&#xff0c;对带宽不是很了解。他们认为硬件配置高就行&#xff0c;访问速度就会快。其实访问快慢主要是带宽大小来决定&#xff0c;硬件主要是用来运算的&#xff0c;带宽是用来传输数据的。服务器处理…

【JSON系列】JSON核心知识点总结

JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快&#xff0c;更易解析。 JSON是一种轻量级的数据交换格式。 它基于(欧洲计算机协会制定的js规范)的一个子集&#xff0c;采用完全独立于编程语言…

spring aop实践_使用Spring AOP实现活动记录模式

spring aop实践在课堂设计过程中&#xff0c;我们应就每个班级的职责分配做出决定。 如果我们选择的不错&#xff0c;系统将更易于理解&#xff0c;维护和扩展。 我们几乎所有的项目都有一个持久层&#xff0c;即关系数据库&#xff0c;文档存储或仅XML文件。 通常&#xff0c;…

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

转载:http://blog.csdn.net/houseq/article/details/27369043 原文地址&#xff1a;https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架&#xff0c;插件…