• c++ map 中的 count


    今天在leetcode写了一个题  两数之和

    这是AC代码

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target)
        {
            vector<int> a;
            map<int,int> p;
            for (int i=0;i<nums.size();i++)
                p[nums[i]]=i;
            map<int,int>::iterator z;
            if (p.count(-6)==0) cout<<"fk"<<endl;
            for (int i=0;i<nums.size();i++)
                if (p.count(target-nums[i])==1 && p[target-nums[i]]!=i)
                {
                    cout<<p.count(target-nums[i])<<endl;
                    cout<<i<<" "<<target-nums[i]<<endl;
                    a.push_back(i);
                    a.push_back(p[target-nums[i]]);
                    break;
                }
            return a;
        }
    };

    这是WA代码

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target)
        {
            vector<int> a;
            map<int,int> p;
            for (int i=0;i<nums.size();i++)
                p[nums[i]]=i;
            for (int i=0;i<nums.size();i++)
                if (p[target-nums[i]]!=i&&p.count(target-nums[i])==1)
                {
                    a.push_back(i);
                    a.push_back(p[target-nums[i]]);
                    break;
                }
            return a;    
        }
    };

    发现了一个map count的问题

    他但凡只要使用过p[a] ,不管有没有赋值,都默认已经有这个元素了,倘若没有赋值,则为0

  • 相关阅读:
    Android Activity
    Android 五大布局
    Android 使用线性布局LinearLayout和Button实现一个点红块游戏
    邻接表、逆邻接表
    view的绘制原理
    IPC机制
    图的深度优先遍历
    最短路径算法
    几种编码方式
    Android APK反编译问题
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/15273042.html
Copyright © 2020-2023  润新知