Skip to content

Commit a67db86

Browse files
committed
Remove Element
1 parent f6080d3 commit a67db86

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

ArrayProblems/RemoveElement.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Hakam\LeetCodePhp\ArrayProblems;
4+
5+
class RemoveElement
6+
{
7+
/**
8+
* @param Integer[] $nums
9+
* @param Integer $val
10+
* @return Integer
11+
*/
12+
public function removeElement(array &$nums, int $val): int
13+
{
14+
$count = count($nums);
15+
for($index = 0; $index<$count;$index ++)
16+
{
17+
if ($nums[$index] === $val) {
18+
$nums[$index--] = $nums[--$count];
19+
}
20+
}
21+
return $count;
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace ArrayProblems;
4+
5+
use Hakam\LeetCodePhp\ArrayProblems\RemoveElement;
6+
use Hakam\LeetCodePhp\Tests\Helper\MainTest;
7+
8+
class RemoveElementTest extends MainTest
9+
{
10+
/**
11+
* @dataProvider provideData
12+
*/
13+
public function testWithDataList($expectedResult, $inputData): void
14+
{
15+
$removeElement = new RemoveElement();
16+
$arrayOfNumbers = $inputData[0];
17+
$count = $removeElement->removeElement($arrayOfNumbers,$inputData[1]);
18+
self::assertEmpty(array_diff($expectedResult,array_slice($arrayOfNumbers,0,$count-1)));
19+
}
20+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"testCase1": {
3+
"expectedResult": [2,2],
4+
"input": [[3,2,2,3],3]
5+
},
6+
"testCase2": {
7+
"expectedResult": [],
8+
"input": [[],3]
9+
}
10+
}

0 commit comments

Comments
 (0)