zoukankan      html  css  js  c++  java
  • 搜狐_笔试_题目一kolakoski序列

    import java.util.*;
    /*
        Kolakoski序列是个随机生成的无限序列.
        例如,当给定的整数组为[1,2]时,Kolakoski序列是这样的:
        [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,...]
        如果我们将相邻的相同的数字分成一组,那么将会得到:
        [[1],[2,2],[1,1],[2],[1],[2,2],[1],[2,2],[1,1],[2],[1,1],[2,2],[1],[2],[1,1],[2],[1],[2,2],[1,1],...]
        可以看出,每组数字交替由1,2组成.
        接下来对每个分组求它的长度,得到:
        [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,...]
        可以看出,经过上述变换后,数列保持不变.
        对于其他给定的整数组,同样可以用类似的方法构造Kolakoski序列,例如给定整数组[2,3]时:
        [2,2,3,3,2,2,2,3,3,3,2,2,3,3,2,2,3,3,3,2,2,2,3,3,3,2,2,3,3,...]
        给定整数组[2,1,3,1]时,构造得到如下:
        [2,2,1,1,3,1,2,2,2,1,3,3,1,1,2,2,1,3,3,3,1,1,1,2,1,3,3,1,1,...]
        输入
        
        输入由两行组成,
        第一行包括两个正整数n,m
        第二行包括m个正整数a[]
        数据规模与限制:
        0<n<10000
        1<m<1000
        0<a[i]<1000
        a[i]不等于a[i+1]
        a[0]不等于a[m-1]
        输出
        
        每行只有一个数字,共n行
        整数组a生成的Kolakoski序列的前n项
        Example
        
        Input
        
        30 4
        2 1 3 1  
        Output
        
        2
        2
        1
        1
        3
        1
        2
        2
        2
        1
        3
        3
        1
        1
        2
        2
        1
        3
        3
        3
        1
        1
        1
        2
        1
        3
        3
        1
        1
        2
     */
    public class Sohu_kolakoskiSequece {
        public static void getArr(int n, int m, int[] a) {
            List<Integer> lists = new ArrayList<Integer>();
            int flag = 0;
            int k = 0;
            int count = 0;
            while(flag < n) {
                if(k == m) k = 0;
                lists.add(a[k]);
                flag++;
                for(int i = 0; i < lists.get(count) - 1; i++) {
                    lists.add(a[k]);
                    flag++;
                }
                k++;
                count++;
            }
           // System.out.println(lists.size());
            for (int s = 0; s < n; s++)
                System.out.print(lists.get(s) + " ");
        }
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int m = in.nextInt();
            int[] a = new int[m];
            for(int i = 0; i < m; i++) {
                a[i] = in.nextInt();
            }
            getArr(n,m,a);
        }
    }
  • 相关阅读:
    Failed to read auto-increment value from storage engine错误的处理方法
    今天测试了一下 sqlalchemy 性能
    PIL The _imaging C module is not installed
    Windows下C语言调用dll动态链接库
    Linux下动态库和静态库的生成和使用
    安卓中WebKit的使用
    php使用curl扩展发送get和post请求示例
    注意笔记
    Linux下Apache2.2和PHP5的安装配置
    PHP文件上传学习
  • 原文地址:https://www.cnblogs.com/zzsaf/p/7447730.html
Copyright © 2011-2022 走看看