Two Sum (Count)
Part I: Basic Version (Only one pair of solution)
public int[] twoSum(int[] nums, int target) {
        int[] ans = new int[2];
        
        if (nums == null || nums.length == 0) {
            return ans;
        }
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            if (map.containsKey(target - nums[i])) {
                ans[0] = i;
                ans[1] = map.get(target- nums[i]);
                break;
            } else {
                map.put(nums[i], i);
            }
        }
        return ans;
    }
Part II: Two Sum Count
    public int twoSumCount(int[] nums, int target) {
        if (nums == null || nums.length == 0) return 0;
        HashSet<Integer> set = new HashSet<>();
        
        for (int num: nums) {
            set.add(num);
        }
        int count = 0;
        
        for (int num: nums) {
            if (set.contains(target - num)) {
                count++;
            }
        }
        return count;
    }