zoukankan      html  css  js  c++  java
  • 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 };


  • 相关阅读:
    SpringMVC框架学习笔记(一)
    Spring框架学习笔记(四)
    Spring框架学习笔记(三)
    Spring框架学习笔记(二)
    Spring框架学习笔记(一)
    单点登录与权限管理本质:cookie安全问题
    单点登录与权限管理本质:单点登录介绍
    单点登录与权限管理本质:HTTP重定向
    单点登录与权限管理本质:session和cookie介绍
    「单点登录与权限管理」系列概述
  • 原文地址:https://www.cnblogs.com/zss/p/3854944.html
Copyright © 2011-2022 走看看