[精讚] [會員登入]
398

a function that takes an array of integers and a target then added any two equals the target

Write a function that takes an array of numbers (integers fo

分享此文連結 //n.sfs.tw/15352

分享連結 a function that takes an array of integers and a target then added any two equals the target@der amateur
(文章歡迎轉載,務必尊重版權註明連結來源)
2021-08-22 16:16:39 最後編修
2021-08-22 15:33:52 By
 

Write a function that takes an array of numbers (integers for the tests) and a target number.

It should find two different items in the array that, when added together, give the target value.

The indices of these items should then be returned in a tuple like so: (index1, index2).

For the purposes of this kata, some tests may have multiple answers; any valid solutions will be accepted.

The input will always be valid (numbers will be an array of length 2 or greater, and all of the items will be numbers; target will always be the sum of two different items from that array).

Based on: http://oj.leetcode.com/problems/two-sum/

example:

twoSum [1, 2, 3] 4 === (0, 2)

my solution:

import java.util.HashMap;
import java.util.Scanner;
import java.util.Map;

class TwoSum {
    
    private static int[] findTwoSum(int[] nums, int target) {
        Map<Integer, Integer> numMap = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int complement = target - nums[i];
            if (numMap.containsKey(complement)) {
                return new int[] { numMap.get(complement), i };
            } else {
                numMap.put(nums[i], i);
            }
        }
        return new int[] {};
    }
}

best kata practice:

import java.util.HashMap;
import java.util.Map;

public class Solution {
  public static int[] twoSum(int[] numbers, int target) {
    Map<Integer, Integer> numToIndexMapping = new HashMap<>(numbers.length);
    for(int i = 0; i < numbers.length; i++) {
      if(numToIndexMapping.containsKey(target - numbers[i])) {
        return new int[] { i, numToIndexMapping.get(target - numbers[i]) };
      } else {
        numToIndexMapping.put(numbers[i], i);
      }
    }
    return new int[0];
  }
}

 

END

你可能感興趣的文章

to implement a difference function, which subtracts one list from another and returns the result. Description: Your goal in this kata is to implement a differ

JAVA Maximum Length Difference You are given two arrays a1 and a2 of strings. Each string i

a function that takes an array of integers and a target then added any two equals the target Write a function that takes an array of numbers (integers fo

a function which takes a list of strings and returns each line prepended by the correct number Write a function which takes a list of strings and returns e

find all elements in listA belonging to each element of listB and to sum according to listA A bookseller has lots of books classified in 26 categories l

隨機好文

packages before adding as module into Intellij IDEA project, need to handle git repostory first. if you wish doing VCS for your code packages, do git setup first, before adding them into Intellij IDEA

win11 keep restart automatically after shutdown how to prevent win11 OS keep restart after manual or remote shutdown