我有一个带有值的2D数组。示例如下:
010101 101010 010101
我想创建一个循环,将这些值移到左侧,如下例所示。
101010 010101 101010
因此,“脱落”的元素又回到了最后。我在代码中很难解决这个问题。
有人有任何建议吗?
到目前为止,我已经让它滚动但我不知道如何让那些脱落的元素重新进入。
这是我到目前为止所做的。
spin_unlock_irqrestore
答案 0 :(得分:3)
尝试使用模数运算符:
<script src="http://cdnjs.cloudflare.com/ajax/libs/vue/1.0.11/vue.min.js"></script>
<div class="app">
Product example: {{ products[0].pname }}
<br><br>
Total: {{ products | subtotal 'price' 'amount' }}
</div>
同时删除您的状况检查。另请注意,为避免覆盖值,您需要将结果存储在新数组中。
arrayShifted[row][col] = array[row][(col + 1) % array[row].length];
答案 1 :(得分:0)
这是一个完整的方法,它接收可变数量的点以移动每一行并正确处理复制与模数方法相同的元素。
int[][] array = new int[][] {
{0,1,0,1,0,1},
{1,0,1,0,1,0},
{0,1,0,1,0,1}
};
shiftArray(array, 1);
for (int[] row : array) {
for (int col : row) {
System.out.print(col);
}
System.out.println();
}
// 101010
// 010101
// 101010
测试运行
{{1}}