2018搜狐笔试第一题
笔试时第一题只有40%,交卷后考虑了一下,少了种情况,自己的算法中需要把第一个元素是不是1进行区分。。。
import java.util.LinkedList;
import java.util.Scanner;
public class Souhu {
/**
* @param args
*/
public static void main()
{
// TODO Auto-generated method stub
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();
int a_index=0;
int index=0;
int count=0;
LinkedList<Integer> list=new LinkedList<Integer>();
list.add(a[0]);
if(a[0]!=1)
{
while(a_index<m)
{
if(!list.isEmpty())
index=list.pop();
for(int i=0;i<index;i++)
{
System.out.println(a[a_index]);
if(count==0&&i==0){}
else
list.add(a[a_index]);
count++;
if(count>=n)
return;
}
a_index++;
if(a_index>=m)
a_index=0;
}
}
else
{
System.out.println(list.pop());
list.add(a[1]);
a_index=1;
while(a_index<m)
{
if(!list.isEmpty())
index=list.pop();
for(int i=0;i<index;i++)
{
System.out.println(a[a_index]);
if(count==0&&i==0){}
else
list.add(a[a_index]);
count++;
if(count>=n-1)
return;
}
a_index++;
if(a_index>=m)
a_index=0;
}
}
}
}