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 };
  • 相关阅读:
    第二阶段冲刺7
    第二阶段冲刺6
    课后作业02需求分析
    阅读计划
    个人总结
    第十六周学习进度条
    第十五周学习进度条
    《梦断代码》阅读笔记03
    《梦断代码》阅读笔记02
    《梦断代码》阅读笔记01
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/5694302.html
Copyright © 2011-2022 走看看