zoukankan      html  css  js  c++  java
  • leetCode 1. Two Sum

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
            
            map<int,int> s;
            for(int i=0;i<nums.size();++i)
            {
                map<int,int>::iterator it=s.find(target-nums[i]);
                if(it!=s.end())
                    return {it->second, i};
                s[nums[i]]=i;
            }
        }
    };

    find 函数主要实现的是在容器内查找指定的元素,查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器。

    在数组中查找:

    int * p=find(first, end,val);//first 是容器的首迭代器,last是容器的末迭代器,val是要查找的元素。

    在vector容器中查找:

    vector<int> v;

    for(i=1:n)

    v.pushback(i);

    vector<int> :: iterator  iter=find(v.begin(),v.end(),num);

    if(iter==v.end())//判断是否找到

    在字符串中查找:

    string str("abdefg");

    string str2("ab");

    size_t found= str.find(str2); //如果没找到返回C++中npos

    size_t found=str.find_first_of(str2);//返回第一次出现的地方

    size_t found=str.find(str2,1,3);//从1开始查找字符串str2的前n个字符

    size_t found=str.find(str2,5);// 从下标5开始查找

    size_t found=str.rfind(str2);//反向查找

  • 相关阅读:
    Python基础知识
    Oracle 总结
    Linux基本命令
    测试理论
    计算机基础
    http常见的状态码,400,401,403状态码分别代表什么?
    html
    day21 包
    day20 模块引入的一些说明
    我又回来了???
  • 原文地址:https://www.cnblogs.com/fanhaha/p/7152464.html
Copyright © 2011-2022 走看看