zoukankan      html  css  js  c++  java
  • 1_Two Sum --LeetCode

    原题如下:

    思路:将nums放到一个map<int,int>中,其中,键是nums中元素,值对应其下标。然后遍历nums,取nums中一个值nums[i],接着用target减去它,最后再map中找差值map[num[i]]。如果发现差值,则返回i,map[num[i]]。

    代码如下:

     1 class Solution {
     2 public:
     3     vector<int> twoSum(vector<int>& nums, int target) {
     4         vector<int> vec;
     5         map<int,int> im;
     6         //将nums装进map容器中,键为vector元素,值为数组下标
     7         for(int i = 0;i<nums.size();i++)
     8         {
     9             im[nums[i]]=i;
    10         }
    11         
    12         map<int,int>::iterator it;
    13         //遍历vector作差,然后再map中寻找差值,如果命中,则记录下标
    14         for(int i = 0;i<nums.size();i++)
    15         {
    16             int sub = target - nums[i];
    17             it = im.find(sub);
    18             if(it != im.end() && it->second != i)
    19             {
    20                 vec.push_back(i);
    21                 vec.push_back(it->second);
    22                 break;
    23             }
    24         }
    25         return vec;
    26 }
  • 相关阅读:
    Bot Style Tests VS Page Objects
    Qemu文档
    PlantUML
    include <xxx.h> 和 include "xxxx.h"的区别
    2021.40 喜欢当下
    2021.39 MIUI崩溃
    2021.38 聚焦
    2021.37 心流
    2021.36 负熵
    2021.35 精神熵
  • 原文地址:https://www.cnblogs.com/houjun/p/8334901.html
Copyright © 2011-2022 走看看