• leetcode_Two Sum


    Two Sum https://oj.leetcode.com/problems/two-sum/


    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


     1 struct Node
     2 {
     3     int num, pos;
     4 };
     5 
     6 bool cmp(Node a, Node b)
     7 {
     8     return a.num < b.num;
     9 }
    10 
    11 class Solution {
    12 public:
    13     vector<int> twoSum(vector<int> &numbers, int target) 
    14     {
    15         vector<int> result;
    16         vector<Node> array;
    17         
    18         for (int i = 0; i < numbers.size(); i++)
    19         {
    20             Node temp;
    21             temp.num = numbers[i];
    22             temp.pos = i;
    23             array.push_back(temp);
    24         }
    25 
    26         sort(array.begin(), array.end(), cmp);
    27         for (int i = 0, j = array.size() - 1; i != j;)
    28         {
    29             int sum = array[i].num + array[j].num;
    30             if (sum == target)
    31             {
    32                 if (array[i].pos < array[j].pos)
    33                 {
    34                     result.push_back(array[i].pos + 1);
    35                     result.push_back(array[j].pos + 1);
    36                 } 
    37                 
    38                 else
    39                 {
    40                     result.push_back(array[j].pos + 1);
    41                     result.push_back(array[i].pos + 1);
    42                 }
    43                 
    44                 break;
    45             } 
    46             
    47             else if (sum < target)
    48             {
    49                 i++;
    50             } 
    51             
    52             else if (sum > target)
    53             {
    54                 j--;
    55             }
    56         }
    57         
    58         return result;
    59     }
    60 };


  • 相关阅读:
    Advanced Installer文件和文件夹页面中的临时文件操作
    celery使用方法
    网站高并发之道
    大话程序猿眼里的高并发
    StringTokenizer类的使用
    linux下查看最消耗CPU、内存的进程
    分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:
    json 除去转义字符以及查看json错误
    关于 redis、memcache、mongoDB 的对比
    QPS 与 TPS 简介
  • 原文地址:https://www.cnblogs.com/zss/p/3854944.html
Copyright © 2020-2023  润新知