zoukankan      html  css  js  c++  java
  • 75. 和为S的两个数字

    暴力求解:双重for循环

    class Solution {
    public:
        vector<int> findNumbersWithSum(vector<int>& nums, int target) {
            int n= nums.size();
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    if(nums[i] + nums[j] == target)
                        return vector<int> {nums[i],nums[j]};
                }
            }
            
        }
    };

    方法2:用unordered_set<>()

    C++ unordered_set定义及初始化详解

    unordered_set<T> 容器类型的模板定义在 unordered_set 头文件中。unordered_set<T> 容器提供了和 unordered_map<T> 相似的能力,但 unordered_set<T> 可以用保存的元素作为它们自己的键。T 类型的对象在容器中的位置由它们的哈希值决定,因而需要定义一个 Hash<T> 函数。

    这种容器不能存放重复的元素。

    unordered_set用法

    代码

    class Solution {
    public:
        vector<int> findNumbersWithSum(vector<int>& nums, int target) {
            unordered_set<int> hash;
            int n= nums.size();
            for(int i=0;i<n;i++)
            {
                if(hash.count(target-nums[i]))//返回target-nums[i]的个数,即判断target-nums[i]是不是存在
                    return vector<int> {nums[i],target-nums[i]};
                //维护hash表
                hash.insert(nums[i]);//每次判断完,将数加到hash表里。
            }
            
        }
    };

    牛客网上的

     

    带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
  • 相关阅读:
    Paperfolding HDU
    I
    2020年8月11日第一次组队训练
    2018ICPC南京I. Magic Potion
    【贪心】纪念品分组
    【贪心】删数问题
    【排序】排名
    小X与队列
    B.T.B.F.
    2018浙江理工大学迎新赛——决赛
  • 原文地址:https://www.cnblogs.com/make-big-money/p/12344957.html
Copyright © 2011-2022 走看看