zoukankan      html  css  js  c++  java
  • 计蒜客 两数之和

    给定一个数组,找到两个数,使得他们的和为一个给定的数值target。

    函数twoSum返回两个数字index1,index2,

    其中:number[index1] + number[index2]==target;

    注意:index1必须小于index2且不能为0假设每一组输入只有唯一的一组解。

    格式:第一行输入一个数n,接下来的两行分别输入数组number[n]和target,返回index1和index2.

    例如:

    Input:

    numbers={2, 7, 11, 15},

    target=9

    Output:

    index1=1, index2=2

    提示:vector twoSum(vector &number, int target)

    样例输入

    3
    5 75 25
    100

    样例输出

    2 3
     1 #include <iostream>
     2 #include <vector>
     3 using namespace std;
     4 vector<int> twoSum(vector<int> &number, int target){
     5     vector<int> v(2);
     6     int num = number.size();
     7     for(int i = 0; i < num - 1; i++){
     8         for(int j = i + 1; j < num; j++){
     9             if(number[i] + number[j] == target){
    10             v[0] = i + 1;
    11             v[1] = j + 1;
    12             }
    13         }
    14     }
    15     return v;
    16 }
    17 
    18 int main(){
    19     int n;
    20     cin >> n;
    21     vector<int> v(n);
    22     for(int i = 0; i < n; i++){
    23         cin >> v[i];
    24     }
    25     int target;
    26     cin >> target;
    27     vector<int> v1 = twoSum(v, target);
    28     cout << v1[0] << " " << v1[1] << endl;
    29     return 0;
    30 }

    如果返回的是两个元素值,则可以先排序,然后首尾两个指针扫描

     
  • 相关阅读:
    软件工程课程-助教自我介绍
    软件工程课程-课代表信息
    软件工程课程-课后作业
    小知识记录:第四篇
    小知识记录:第三篇
    小知识记录:第二篇
    小知识记录:第一篇
    dd命令和fio命令测试磁盘io性能
    horizon仪表盘安装
    OpenStack安装部署笔记
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5808899.html
Copyright © 2011-2022 走看看