Amazon OA2准备——01list

这道题目是这样的: 有一个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;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值