170. Two Sum III - Data structure design

/*
Date: March 21, 2016
170. Two Sum III - Data structure design
[My Submissions](https://leetcode.com/problems/two-sum-iii-data-structure-design/submissions/)Question

Total Accepted: **10075** Total Submissions: **41802** Difficulty: **Easy**

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.
For example,
add(1); add(3); add(5);find(4) -> truefind(7) -> false

Hide Company Tags
 [LinkedIn](https://leetcode.com/company/linkedin/)
Hide Tags
 [Hash Table](https://leetcode.com/tag/hash-table/) [Design](https://leetcode.com/tag/design/)
Hide Similar Problems
 [(E) Two Sum](https://leetcode.com/problems/two-sum/) [(E) Unique Word Abbreviation](https://leetcode.com/problems/unique-word-abbreviation/)
*/

import java.util.*;

public class TwoSumDataStructure {
    // add  O(1) time,    find(value) O(n) time,  space O(n)
    public static void main(String args[]) {
        TwoSumDataStructure twoSum = new TwoSumDataStructure();
        twoSum.add(1); twoSum.add(3); twoSum.add(5);
        System.out.printf(" find(4) = %b\n", twoSum.find(4));
        System.out.printf(" find(7) = %b\n", twoSum.find(7));
    }
    
    private static HashMap<Integer, Integer> map = new HashMap<>();

    public static void add(int input) {
        int count = map.containsKey(input) ? map.get(input) : 0;
        map.put(input, count + 1);
    }


    public static boolean find(int val) {
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            int num = entry.getKey();
            int y = val - num;
            if (y == num) {
                // For dumplicates, ensure there are at least  two individual numbers.
                if (entry.getValue() >= 2)  return true;
            } else if (map.containsKey(y)) {
                return true;
            }
        }
        return false;
    } 

}
    原文作者:billyzhang
    原文地址: https://www.jianshu.com/p/9300c2c3330c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞