xxxxxxxxxx
import java.util.HashMap;
import java.util.Scanner;
import java.util.Map;
class TwoSum {
// Time complexity: O(n^2)
private static int[] findTwoSum_BruteForce(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] == target) {
return new int[] { i, j };
}
}
}
return new int[] {};
}
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int n = keyboard.nextInt();
int[] nums = new int[n];
for(int i = 0; i < n; i++) {
nums[i] = keyboard.nextInt();
}
int target = keyboard.nextInt();
keyboard.close();
int[] indices = findTwoSum_BruteForce(nums, target);
if (indices.length == 2) {
System.out.println(indices[0] + " " + indices[1]);
} else {
System.out.println("No solution found!");
}
}
}
xxxxxxxxxx
function twoSum(nums, target) {
const numIndexMap = {};
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (numIndexMap.hasOwnProperty(complement)) {
return [numIndexMap[complement], i];
}
numIndexMap[nums[i]] = i;
}
return [];
}
// Test cases
console.log(twoSum([2, 7, 11, 15], 9)); // Output: [0, 1]
console.log(twoSum([3, 2, 4], 6)); // Output: [1, 2]
console.log(twoSum([3, 3], 6)); // Output: [0, 1]