zoukankan      html  css  js  c++  java
  • 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 };
  • 相关阅读:
    Pycharm创建Django项目示例
    Window下MyCat的下载与安装
    Python中使用xlrd、xlwt、xlutils读写Excel文件
    循环队列(Java实现)
    oracle 创建表
    win10 删除文件卡在99%
    python xx005文件操作
    python xx004集合
    python xx003字典
    不理解
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/5694302.html
Copyright © 2011-2022 走看看