Day 50
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int temp = target - nums[i]; if (map.containsKey(temp)) { return new int[]{map.get(temp), i}; } map.put(nums[i], i); } return null; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| func twoSum(nums []int, target int) []int { m := make(map[int]int)
for i, v := range nums { temp := target - v if _, ok := m[temp]; ok { return []int{m[temp], i} } m[nums[i]] = i } return nil }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { Map<Integer, Integer> map = new HashMap<>(); int res = 0; for (int i = 0; i < nums1.length; i++) { for (int j = 0; j < nums2.length; j++) { int sum = nums1[i] + nums2[j]; map.put(sum, map.getOrDefault(sum, 0) + 1); } }
for (int i = 0; i < nums3.length; i++) { for (int j = 0; j < nums4.length; j++) { int sum = -(nums3[i] + nums4[j]); if (map.containsKey(sum)) { res += map.get(sum); } } } return res; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int { m, res := make(map[int]int), 0
for _, v1 := range nums1 { for _, v2 := range nums2 { m[v1+v2]++ } }
for _, v3 := range nums3 { for _, v4 := range nums4 { res += m[-(v3 + v4)] } } return res }
|
Magazine
first, then ransomNote
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Solution { public boolean canConstruct(String ransomNote, String magazine) { if (ransomNote.length() > magazine.length()) return false; int[] record = new int[26];
for (char c : magazine.toCharArray()) { record[c - 'a']++; } for (char c : ransomNote.toCharArray()) { record[c - 'a']--; if (record[c - 'a'] < 0) { return false; } } for (int v : record) { if (v < 0) { return false; } } return true; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| func canConstruct(ransomNote string, magazine string) bool { record := make([]int, 26) for _, v := range magazine { record[v-'a']++ }
for _, v := range ransomNote { record[v-'a']-- if record[v-'a'] < 0 { return false } } return true }
|