From dd242cfbb5339ef8d03b0911da3b57d9b2da9bed Mon Sep 17 00:00:00 2001 From: a12bb <2713204748@qq.com> Date: Thu, 29 Feb 2024 19:52:04 +0800 Subject: [PATCH] =?UTF-8?q?Update=200435.=E6=97=A0=E9=87=8D=E5=8F=A0?= =?UTF-8?q?=E5=8C=BA=E9=97=B4.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0435.无重叠区间C语言实现 --- problems/0435.无重叠区间.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/problems/0435.无重叠区间.md b/problems/0435.无重叠区间.md index cf9996dd..b668e860 100644 --- a/problems/0435.无重叠区间.md +++ b/problems/0435.无重叠区间.md @@ -441,7 +441,37 @@ impl Solution { } } ``` +### C + +```c +// 按照区间右边界排序 +int cmp(const void * var1, const void * var2){ + return (*(int **) var1)[1] - (*(int **) var2)[1]; +} + +int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) { + if(intervalsSize == 0){ + return 0; + } + qsort(intervals, intervalsSize, sizeof (int *), cmp); + // 记录非重叠的区间数量 + int count = 1; + // 记录区间分割点 + int end = intervals[0][1]; + for(int i = 1; i < intervalsSize; i++){ + if(end <= intervals[i][0]){ + end = intervals[i][1]; + count++; + } + } + return intervalsSize - count; +} +``` + + + ### C# + ```csharp public class Solution { @@ -468,3 +498,4 @@ public class Solution +