您的位置:首页 > 编程语言 > Java开发

Amazon OA2准备——01list

2015-10-17 04:01 441 查看
这道题目是这样的: 有一个list(eg.[1,0,0,0,0,1,0,0])每天更新,每个单元的新值看左右两边的邻居。如果左右一样就把当前值设置为0,不一样就设置为1。头和尾的前后分别当做是0。

比如说上面的例子就可以看成(0)[1,0,0,0,0,1,0,0](0)

实现如下

private static int[] FlipList(int[] list, int fliptime) {
// TODO Auto-generated method stub
if(list.length < 1)
return list;

int currentTime = 0;

while(currentTime < fliptime)
{

int[] newlist = new int[list.length];

for(int i=0; i < list.length; i++)
{
int last,next;
if((i-1) < 0)
last = 0;
else
last = list[i-1];

if((i+1) > (list.length-1))
next = 0;
else
next = list[i+1];

if(last == next)
{
newlist[i] = 0;
}
else
newlist[i] = 1;
}

list = newlist;
currentTime++;

}

return list;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息