Post

1. Two Sum

問題文

整数 nums の配列と整数 target を指定すると、合計が target になるような 2 つの数値のインデックスを返す関数を実装します。

各入力にはソリューションが 1 つだけ存在し、同じ要素を 2 回使用することはできないと想定できます。

回答は任意の順序で返すことができます。

回答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TwoSum {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }

    public int[] twoSum(int[] nums, int target) {

        for (int i = 0; i < nums.length; i++) {
            int num = nums[i];
            for (int j = i+1; j < nums.length; j++) {
                int num2 = nums[j];
                if (num + num2 == target) {
                    return new int[]{i, j};
                }
            }
        }
        return null;
    }
}

numsを受け取って、numにインデックス毎の値を保存します。numsを巡回しながら、設定されてるnumに対して合計がtargetの場合のみif条件にかかり、結果をリターンするようなコードです。

This post is licensed under CC BY 4.0 by the author.