• leetcode 1


    想利用pair对应数值与下标的关系,再对容器中的数值进行排序,对排序后的数进行处理。

    处理方法是这样的,取第一个数即最小得数和最后一个数即最大的数。

    两者相加如果==target 直接退出,得到响应两个数对应的下标(注:最后结果的下标是从小到大的)

    两者相加如果<target,则最小的数向后移。

    两者相加如果>target,则最大的数向前移.

     1 class Solution {
     2 public:
     3     vector<int> twoSum(vector<int>& nums, int target) {
     4         pair<int,int>a,b,c;
     5         vector<pair<int,int>>tot;
     6         for(int i=0;i<nums.size();i++) {
     7             a=make_pair(nums[i],i);
     8             tot.push_back(a);
     9         }
    10         sort(tot.begin(),tot.end());
    11         for(int i=0,j=nums.size()-1;i<nums.size();) {
    12             a=tot[i];
    13             b=tot[j];
    14             if(a.first+b.first==target) {
    15                 c=make_pair(min(a.second,b.second),max(a.second,b.second));
    16                 break;
    17             }
    18             else if(a.first+b.first<target)
    19              i++;
    20              else j--;
    21         }
    22         vector<int>result;
    23          result.push_back(c.first);
    24          result.push_back(c.second);
    25         return result;
    26     }
    27 };
  • 相关阅读:
    顺序查找
    折半查找
    KMP
    php长时间的脚本,报502
    AcWing 27. 数值的整数次方
    acwing 25. 剪绳子
    Best Cow Line <挑战程序设计竞赛> 习题 poj 3617
    acwing 23. 矩阵中的路径
    AcWing 34. 链表中环的入口结点
    AcWing 33. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/5694302.html
Copyright © 2020-2023  润新知