[精讚] [會員登入]
418

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

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

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

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

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

隨機好文

netbeans IDE scaling on Win10 how to change scaling not to see tiny little letters in the IDE

repairing esxi guest system after power failure if centos7 guest system reboot failed after power failure

setup jira run under build-in tomcat web server with https setup jira run under native tomcat web server with https