[#3027] feat(numberOfPairs): add C# solution
This commit is contained in:
@@ -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}");
|
||||||
|
}
|
||||||
|
}
|
@@ -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>
|
Reference in New Issue
Block a user