- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Stack,我无法完全理解这个怪事。我每次都在评估数组中的位置。每次我收到不同的结果时如何初始化数组...如果有人能解释一下,我将不胜感激。
在 While 循环中:正确
0,1,0,1,1,0,0,1
0,1,1,0,0,0,0,0
0,0,0,0,1,1,1,0
0,1,1,0,0,1,0,0
0,0,0,0,0,1,0,0
0,1,1,1,0,1,0,0
0,0,1,0,1,1,0,0
0,0,1,1,0,0,0,0
外部 While 循环(初始化一次):不正确
0,1,0,1,1,0,0,1
0,1,1,0,0,0,0,0
0,0,1,0,1,0,1,0
0,0,1,1,0,0,1,0
0,0,0,1,0,0,1,0
0,1,1,0,1,1,0,0
0,0,1,1,1,0,1,0
0,0,0,0,1,1,0,0
问题详情
一排8个牢房,每个牢房不是有人住就是空着。
每天,单元格是被占用还是空闲都按照以下规则变化:
如果一个单元格有两个相邻的邻居都被占用或都空着,那么这个单元格就会被占用。否则,它将变为空置。(请注意,因为 jail 是一排,所以该排的第一个和最后一个牢房不能有两个相邻的邻居。)
我们用以下方式描述 jail 的当前状态:如果第 i 个牢房被占用,则 cells[i] == 1,否则 cells[i] == 0。
给定 jail 的初始状态,返回N天后 jail 的状态(以及上述N种变化。)
示例 1:预期输出
输入:细胞 = [0,1,0,1,1,0,0,1], N = 7
输出:[0,0,1,1,0,0,0,0]
说明:
下表总结了 jail 每天的状态:
第 0 天:[0, 1, 0, 1, 1, 0, 0, 1]
第一天:[0, 1, 1, 0, 0, 0, 0, 0]
第 2 天:[0, 0, 0, 0, 1, 1, 1, 0]
第三天:[0, 1, 1, 0, 0, 1, 0, 0]
第 4 天:[0, 0, 0, 0, 0, 1, 0, 0]
第 5 天:[0, 1, 1, 1, 0, 1, 0, 0]
第六天:[0, 0, 1, 0, 1, 1, 0, 0]
第七天:[0, 0, 1, 1, 0, 0, 0, 0]
方法
static public int[] PrisonAfterNDays(int[] cells, int N)
{
int counter = 0;
//Doesn't work if it's here
//int[] temp = new int[8];
while(counter < N)
{
Console.WriteLine(String.Join(",",cells));
//Works if it's here ?!?!?!
int[] temp = new int[8];
for(int j = 1; j < 8-1; j++)
{
if(cells[j-1] == cells[j+1])
{
temp[j] = 1;
}
else
{
temp[j] = 0;
}
}
cells = temp;
counter++;
}
return cells;
}
最佳答案
请记住,尽管 int
是值类型,但数组是引用类型,因此 int[]
是引用类型。 (参见 What is the difference between a reference type and value type in c#?)
当您执行 cells = temp;
时,您将 cells
和 temp
指向完全相同的数组!您可以使用以下代码对此进行测试:
int[] a = new int[2];
int[] b = a;
b[0] = 85;
b[1] = 3;
Console.WriteLine(a[0]); // prints 85
Console.WriteLine(a[1]); // prints 3
所以这意味着在外循环的第二次迭代中,以下代码同时更改了 cells[j]
和 temp[j]
:
temp[j] = 1;
这显然意味着您会得到奇怪的结果。
出于这个原因,我认为您应该在循环中定义temp
。
关于c# - 力扣 : Prison Cells After N Days,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565034/
我正在尝试编写一个程序,以表格的形式计算我的结果。我有一个液压升降机,可以显示作用在直径 (D1) 的活塞上的小力(我称之为 F1)可以乘以作用在直径 (D2) 的活塞上的大力 (F2) ,电梯的运行
我有一个 fiddle :https://jsfiddle.net/mvLf579a/284/ 此 fiddle 允许您使用 D3 径向布局来布置力网络,并将布局重置为默认力布局。但是,重置时链接强度
我想实现表格 View 单元格重叠,因为我想实现这种效果: 所以基本上细胞会一个接一个地堆叠。我的目标是 iOS7+(目前正在测试 iOS8)。 我目前正在做一个 CAGradientLayer,它被
尽管在 box2d 前花了几个小时,但我仍然不明白 applyforce 和 applyimpulse 是如何工作的。我尝试使用一些视觉效果来更好地理解正在发生的事情(通过在 body 位置和应用点之
首先,我是 D3 的新手。我正在尝试使用这些示例在单个 D3 图中实现不同的行为: Drag + Zoom 力导向图 但我的图表在几秒钟后卡住,我不明白为什么... 这是我的代码:http://jsf
所以,我在 Xcode 上用 Swift 玩了这个游戏,我有一个跳跃的 SKShapeNode。不过,我希望这种跳跃与玩家的触感相称。因此,小水龙头会跳得小,而轻快的水龙头会跳得更高。怎么可能做到这一
在 ARKit/SceneKit 中,当用户点击按钮时,我想对我的节点施加一个脉冲。我希望冲动来自当前用户的角度。这意味着节点将远离用户的视角。多亏了这段代码,我能够获得当前的方向/方向: func
我正在使用 Angular2 并拥有父子组件。我的子组件正在使用 DatePipe 提供程序,因为父单元测试失败并给出以下错误, 错误:非法状态:无法加载管道 DatePipe 的摘要。 如何解决这个
我是一名优秀的程序员,十分优秀!