分配工号
今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号。人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是:
将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列,报到队尾后则回到队头继续报,直到所有人都出列;
最后按照出列顺序为每个人依次分配工号。请你使用自己擅长的编程语言帮助小v实现此方法。

private static String solution(int[] input) {// TODO Write your code hereint N = input[0];int M = input[1];List<Integer> list = new ArrayList<>();StringBuffer sb = new StringBuffer();for(int i=1;i<=N;i++){list.add(i);//构造数组1~N}int count = 0;//存储上一个分配到工号的人的位置for(int i=1;list.size()>1;i++){if(i%M==0){sb.append(list.remove(count)+" ");}else{count++;}if(count>=list.size()){count = count - list.size();}}sb.append(list.get(0));return sb.toString();//return null;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
