LeetCode 170. Two Sum III - Data structure design

題目

這個數據結構主要是把數據存儲到unordered_multiset里,multiset類似set,但是它允許重復元素的存在。

這是cplusplus.com里關于unordered_multiset的指引
unordered_multiset reference

實現find函數我原本的思路是用set.find(n - value), 但是發現這個方法不能解決例如 set: {0}, find(0) 這樣的情況,所以我選擇了是用multiset的count函數,如果value == value - n, 那在multisite中至少要這個value出現兩次才能滿足 n + (value - n) == value 此處n 與 value - n 是值相同的不同元素

class TwoSum {

 public:

        // Add the number to an internal data structure.

      void add(int number) { 

            nums.insert(number);

      } 

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

      bool find(int value) { 

         for (auto n: nums) {

??              int count = value - n == n ? 2 : 1;

              if (nums.count(value - n) >= count) return true;

          }

          return false;

      }

  private:

      unordered_multisetnums;

};
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容