Array
1. 1. Two Sum
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
/**
* <a href="https://leetcode.com/problems/two-sum/">Two Sum</a>
*/
class TwoSum {
private final Map<Integer, Integer> cache = new HashMap<>();
public int[] twoSum(final int[] nums, final int target) {
for (int i = 0; i < nums.length; i++) {
final int residual = target - nums[i];
if (cache.containsKey(residual)) {
return new int[]{cache.get(residual), i};
}
cache.put(nums[i], i);
}
return new int[]{};
}
@Test
void givenInput1_whenCheckTheTwoSum_thenItShouldReturn0And1() {
final int[] nums = new int[]{2, 7, 11, 15};
final int target = 9;
Assertions.assertArrayEquals(new int[]{0, 1}, twoSum(nums, target));
}
@Test
void givenInput2_whenCheckTheTwoSum_thenItShouldReturn1And2() {
final int[] nums = new int[]{3, 2, 4};
final int target = 6;
Assertions.assertArrayEquals(new int[]{1, 2}, twoSum(nums, target));
}
@Test
void givenInput3_whenCheckTheTwoSum_thenItShouldReturn0And1() {
final int[] nums = new int[]{3, 3};
final int target = 6;
Assertions.assertArrayEquals(new int[]{0, 1}, twoSum(nums, target));
}
}Insert Interval - Leetcode 57 - Python
4. 15. 3Sum
Using backtrack, not sure if there is other solutions like the memorization or dp.
Boyer-Moore Majority Voting Algorithm
Last updated
Was this helpful?