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 };


  • 相关阅读:
    基于JSP+SERVLET的新闻发布系统(三)
    linux date
    试论知识工作者的任务分析
    SRM 577 Div II Level Two: EllysRoomAssignmentsDiv2
    UNIX环境高级编程——TCP/IP网络编程
    是时候抛弃web.xml了?
    使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控--转
    spring-security-oauth2注解详解
    一张图了解javaJwt
    nginx假死导致的问题回顾
  • 原文地址:https://www.cnblogs.com/zss/p/3854944.html
Copyright © 2011-2022 走看看