Skip to content

Commit f694b10

Browse files
committed
add solution for array lessong - insert operation
1 parent 48fc399 commit f694b10

File tree

3 files changed

+111
-1
lines changed

3 files changed

+111
-1
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace LeetCodeResolves.Arrays.DuplicateZeros
6+
{
7+
class Program
8+
{
9+
static void Main(string[] args)
10+
{
11+
var nums = new int[] { -5, -3, 0, 3, 5 };
12+
DuplicateZeros(nums);
13+
14+
Console.ReadLine();
15+
}
16+
17+
static void DuplicateZeros(int[] arr)
18+
{
19+
var possibleDups = 0;
20+
var length = arr.Length - 1;
21+
22+
for (var left = 0; left <= length - possibleDups; left++)
23+
{
24+
if (arr[left] == 0)
25+
{
26+
if (left == length - possibleDups)
27+
{
28+
arr[length] = 0;
29+
length -= 1;
30+
break;
31+
}
32+
possibleDups++;
33+
}
34+
}
35+
36+
var last = length - possibleDups;
37+
for (var i = last; i >= 0; i--)
38+
{
39+
if (arr[i] == 0)
40+
{
41+
arr[i + possibleDups] = 0;
42+
possibleDups--;
43+
arr[i + possibleDups] = 0;
44+
}
45+
else
46+
{
47+
arr[i + possibleDups] = arr[i];
48+
}
49+
}
50+
}
51+
}
52+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace LeetCodeResolves.Arrays.Merge
6+
{
7+
class Program
8+
{
9+
static void Main(string[] args)
10+
{
11+
var nums1 = new int[] { 1, 6, 10, 0, 0 };
12+
var nums2 = new int[] { 2, 11 };
13+
var m = 3;
14+
var n = 2;
15+
Merge(nums1, m, nums2, n);
16+
17+
Console.ReadLine();
18+
}
19+
20+
static void Merge(int[] nums1, int m, int[] nums2, int n)
21+
{
22+
var len = n + m;
23+
var i = m - 1;
24+
var j = n - 1;
25+
var k = 1;
26+
27+
while(i >=0 || j >= 0)
28+
{
29+
if(i >= 0 && j >= 0)
30+
{
31+
if(nums1[i] < nums2[j])
32+
{
33+
nums1[len - k] = nums2[j--];
34+
}
35+
else
36+
{
37+
nums1[len - k] = nums1[i--];
38+
}
39+
40+
k++;
41+
continue;
42+
}
43+
44+
if (i >= 0)
45+
{
46+
nums1[len - k] = nums1[i--];
47+
k++;
48+
}
49+
50+
if (j >= 0)
51+
{
52+
nums1[len - k] = nums2[j--];
53+
k++;
54+
}
55+
}
56+
}
57+
}
58+
}

C#/LeetCodeResolves/LeetCodeResolves/LeetCodeResolves.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
55
<TargetFramework>netcoreapp3.1</TargetFramework>
6-
<StartupObject>LeetCodeResolves.Arrays.SortedSquares.Program</StartupObject>
6+
<StartupObject>LeetCodeResolves.Arrays.DuplicateZeros.Program</StartupObject>
77
</PropertyGroup>
88

99
</Project>

0 commit comments

Comments
 (0)