gpt4 book ai didi

php - 反转和反转数组的数组

转载 作者:搜寻专家 更新时间:2023-10-31 21:19:33 25 4
gpt4 key购买 nike

我正在解决一个编程问题(反转然后反转数组。)它反转它但不反转它。

问题

给定一个二进制矩阵 A,我们希望水平翻转图像,然后反转它,并返回结果图像。

水平翻转图像意味着图像的每一行都被反转。例如,水平翻转 [1, 1, 0] 会导致 [0, 1, 1]。

反转图像意味着每个 0 被 1 替换,每个 1 被 0 替换。例如,反转 [0, 1, 1] 导致 [1, 0, 0]。

Example 1:

Input: [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1]]
Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].
Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]

代码:

class Solution {

/**
* @param Integer[][] $A
* @return Integer[][]
*/
function flipAndInvertImage($A) {
$B=[]; //flipped
$i=strlen($A);

$a=0;
foreach($A as $item)
{
$B[$a]=array_reverse($item);
$a++;
}
// return $B;
$C=[];
for($b=0;$b<=count($B);$b++)
{
foreach($B[$b] as $mini)
{
if($mini==1)
{
$C[$b]=0;
}
else
$C[$b]=1;
}
}
return $C;
}
}

最佳答案

你可以使用 array_maparray_reverse .

每个数组条目首先反转数组,然后使用数组映射再次使用 1 - $val 翻转 1 和 0。

$arrays = [[1,1,0],[1,0,1],[0,0,0]];

$arrays = array_map(function($array){
return array_map(function($val) { return 1 - $val;}, array_reverse($array));
}, $arrays);

print_r($arrays);

结果

Array
(
[0] => Array
(
[0] => 1
[1] => 0
[2] => 0
)

[1] => Array
(
[0] => 0
[1] => 1
[2] => 0
)

[2] => Array
(
[0] => 1
[1] => 1
[2] => 1
)

)

Php demo

关于php - 反转和反转数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com