[#3027] feat(numberOfPairs): add C# solution

This commit is contained in:
2025-09-03 10:55:26 +08:00
parent b9965b192c
commit bcbea676c2
2 changed files with 86 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
// LeetCode 3027: Find The Number Of Ways To Place People Ii
// 難度: Hard
// 日期: 2025-09-03
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public int NumberOfPairs(int[][] points)
{
int n = points.Length;
int result = 0;
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
if (i == j) continue;
// 判斷 Alice points[i] 是否在 Bob points[j] 左上角
var Alice = points[i];
var Bob = points[j];
if (Alice[0] <= Bob[0] && Alice[1] >= Bob[1])
{
// get border
int minX = Alice[0];
int maxX = Bob[0];
int minY = Bob[1];
int maxY = Alice[1];
bool isAnyPerson = false;
for (var k = 0; k < n; k++)
{
if (i == k || j == k) continue;
var person = points[k];
if (minX <= person[0] && person[0] <= maxX && minY <= person[1] && person[1] <= maxY)
{
isAnyPerson = true;
break;
}
}
if (!isAnyPerson) result++;
}
}
}
return result;
}
}
public class Program {
public static void Main() {
Solution solution = new Solution();
// 測試案例
TestCase(solution);
}
static void TestCase(Solution solution) {
// Input:
int[][] points = new int[][] {
new int[] {6, 2},
new int[] {4, 4},
new int[] {2, 6}
};
// Expected:
Console.WriteLine($"Test Case: [[6,2],[4,4],[2,6]]");
Console.WriteLine($"Expected: 2");
// Actual:
int result1 = solution.NumberOfPairs(points);
Console.WriteLine($"Result: {result1}");
}
}

View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>