小组编号问题。输入一组数【2,7,3,4,9】,表示第一组有2个人,编号为【1、2】,第二组有7个人编号为【3~9】,第三组有3个人编号为【10~12】,第四组有4个人编号为【13~16】,第五组有9个人编号为【17~25】。

题目描述
小组编号问题。输入一组数【2,7,3,4,9】,表示第一组有2个人,编号为【1、2】,第二组有7个人编号为【39】,第三组有3个人编号为【1012】,第四组有4个人编号为【1316】,第五组有9个人编号为【1725】。

现在求,编号为1、25、11的人分别在哪个组里。

示例:
输入
5
2 7 3 4 9
3
1 25 11

输出
1 5 3

思路:第一个想法就是计数问题,依次累加小组成员数,如果组员数刚好大于等于编号,则输出当前组。比如现在求编号为11的人在哪个组。第一组有2个人,第二组有7个人,第三组有3个人,2 + 7 + 3 > 11 所以11在第三组里。感觉比不是很好的思路,每次都需要从头开始累加,计算量较大。

public class Solution {
    public static int[] getRes(int[] arr, int[] query) {
        int[] res = new int[query.length];
        for (int i = 0; i < query.length; i++) {
            int sum=0;
            for (int j = 0; j =query[i]){
                    res[i]=j+1;
                    break;
                }
            }
        }
        return res;
    }

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int  n=sc.nextInt();
            int[] arr=new int[n];
            for (int i = 0; i 

你可能感兴趣的:(小组编号问题。输入一组数【2,7,3,4,9】,表示第一组有2个人,编号为【1、2】,第二组有7个人编号为【3~9】,第三组有3个人编号为【10~12】,第四组有4个人编号为【13~16】,第五组有9个人编号为【17~25】。)