[精讚] [會員登入]
301

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

你可能感興趣的文章

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

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

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

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

how to rename git branch rename git branch

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

JIRA instance migration phase3: upgrading jira trying to upgrade jira from 7.6.1 to 8.x