搜狐第一题AC JAVA版

难得AC  发个代码
//主要思路是记录每个数重复的次数,以及下一个将重复的数是数组中的哪个元素
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int m = sc.nextInt();
            int[] a = new int[m];
            for (int i = 0; i < m; i++) {
                a[i] = sc.nextInt();
            }
            int[] res = new int[n];
            res[0] = a[0];
//这里要判断下第一个数是否为1,如果第一个数是1,需要初始化第二个数,否则后面循环走不下去,而第二个数与第一个数不相等,即不再为1,后面循环就顺利了
            if (a[0] == 1) {
                res[1] = a[1];
            }
            int cur = 0;
            int flag = 0;
            for (int i = 0; i < n;) {
//num表示重复的次数
                int num = res[cur];
                for (int j = 0; j < num; j++) {
//a[flag]表示正在重复的元素,在每次重复的结尾,将flag指向下一个元素
                    res[i] = a[flag];
                    if (j == num - 1) {
                        if (flag < m - 1) {
                            flag++;
                        } else if (flag == m - 1) {
                            flag = 0;
                        }
                    }
                    i++;
                    if (i == n) {
                        break;
                    }
                }
                cur++;
            }
            for (int i = 0; i < n; i++) {
                System.out.println(res[i]);
            }
        }
        sc.close();
    }
全部评论
求第二题代码
点赞 回复 分享
发布于 2017-08-28 21:15
很强 然而我什么都没看懂
点赞 回复 分享
发布于 2017-08-28 20:45
大佬说下思路
点赞 回复 分享
发布于 2017-08-28 20:33

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务