计算客刷题笔记

两数之和

2018-05-10  本文已影响16人  Airycode

【链接】https://nanti.jisuanke.com/t/25
【题目】
给定一个数组 numberi,找到两个数,使得他们的和为一个给定的数值 target。
其中:number[index1]+number[index2] == target.
注意:indexx1必须小于indexx2且不能为0,假设每一组输入只有唯一的一组解
例如,对于数组[2,7,11,15]和target=9,indexx1的值为1,indexx2的值为2.
输入格式

第一行输入一个整数 n(1≤n≤500),接下来的两行分别输入 n 个整数组成的数组 numberi(0≤numberi≤1000) 和一个整数 target(0≤target≤1000)。

输出格式

输出一行由空格分隔的两个整数 index1 和 index2。注意,下标从 1 开始。
【代码实现】

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        int array[] = new int[num];
        for (int i = 0;i<num;i++) {
            array[i] = input.nextInt();
        }
        int target = input.nextInt();
        List<Integer> list = twoSum(array,target);
        for (int i = 0;i<list.size();i++) {
            System.out.print(list.get(i) +" ");
        }
        
    }

    private static List<Integer> twoSum(int[] array, int target) {

        
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0;i<array.length;i++) {
            for (int j = i+1;j<array.length;j++) {
                if (array[i] + array[j] == target) {
                    list.add(i+1);
                    list.add(j+1);
                }
            }
        }
        
    
        
        
        return list;
    }
    
}

上一篇下一篇

猜你喜欢

热点阅读