Leetcode|Two Sum III - Data structure design

本文介绍如何设计并实现一个TwoSum类,该类能够支持add方法用于添加数字到内部数据结构,以及find方法用于查找是否存在两个数字之和等于指定值的情况。通过使用unordered_map进行高效查找。

Design and implement a TwoSum class. It should support the following operations: add and find.

add - Add the number to an internal data structure.

find - Find if there exists any pair of numbers which sum is equal to the value.

two sum是个经典问题,这里自己实现的类借助unordered_map

查找时依据是否One和two相等来分两种对待。

<pre name="code" class="cpp">class twosum
{
    unordered_map<int,int> array;
public:
    void add(int n)
    {
        array[n]++;
    }

    bool find(int value)
    {
        int one,two;
        for(unordered_map<int,int>::iterator it=array.begin();it!=array.edn();it++)
        {
            one=it->first;
            two=value-one;
            if(two==one&&it->second>1||(two!=one&&array.find(two)!=array.end())
               return true;
        }
        return false;
    }
};





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值