博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]1.Two Sum
阅读量:5743 次
发布时间:2019-06-18

本文共 2273 字,大约阅读时间需要 7 分钟。

【题目】

Given an array of integers, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

You may assume that each input would have exactly one solution.

Input: numbers={2, 7, 11, 15}, target=9

Output: index1=1, index2=2

【分析】

类似于

【代码】

/**********************************   日期:2015-01-15*   作者:SJF0115*   题目: 1.Two Sum*   网址:https://oj.leetcode.com/problems/two-sum/*   结果:AC*   来源:LeetCode*   博客:**********************************/#include 
#include
#include
using namespace std;class Solution {public: vector
twoSum(vector
&numbers, int target) { vector
result; vector
num = numbers; int count = numbers.size(); if(numbers.empty()){ return result; }//if // 排序 sort(numbers.begin(),numbers.end()); // 二分查找变形 for(int i = 0,j = count-1;i < j;){ int sum = numbers[i] + numbers[j]; // 找到目标 if(sum == target){ return FindIndex(num,numbers[i],numbers[j]); } // 当前和大于目标,需要变小一些 else if(sum > target){ j--; } // 当前和小于目标,需要变大一些 else{ i++; } }//for return result; }private: // 寻找下标 vector
FindIndex(vector
&numbers,int num1,int num2){ int count = numbers.size(); vector
result; int index1,index2; bool flag1 = false,flag2 = false; for(int i = 0;i < count;++i){ if(flag1 == false && numbers[i] == num1){ index1 = i+1; flag1 = true; } else if(flag2 == false && numbers[i] == num2){ index2 = i+1; flag2 = true; } }//for // 交换 使index1 < index2 if(index1 > index2){ int tmp = index1; index1 = index2; index2 = tmp; }//if result.push_back(index1); result.push_back(index2); return result; }};int main(){ Solution solution; vector
num; num.push_back(0); num.push_back(4); num.push_back(3); num.push_back(0); //num.push_back(15); int target = 0; // 查找 vector
vec = solution.twoSum(num,target); // 输出 cout<<"Index1->"<
<<" Index2->"<
<
你可能感兴趣的文章
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
lvm讲解,磁盘故障小案例
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
thymeleaf 学习笔记-基础篇
查看>>
PHP-X开发扩展
查看>>