public class Solution { public int FindMinArrowShots(int[,] points) { if(points == null){ return 0; } var len = points.GetLength(0); if(len == 0){ return 0; } var balls = new List<Balloon>(len); for (var i = 0;i < len; i++){ balls.Add(new Balloon(points[i,0], points[i,1])); } balls = balls.OrderBy(x=>x.X1).ThenBy(x=>x.X2).ToList(); //Console.WriteLine(balls); var bulletCount = 1; var selection = balls.First(); var bulletX = selection.X2; for (var i = 1;i < balls.Count; i++){ if(balls[i].X1 <= bulletX){ bulletX = Math.Min(bulletX, balls[i].X2); }else{ bulletX = balls[i].X2; bulletCount++; } } //Console.WriteLine(balls); return bulletCount; } public class Balloon{ public int X1; public int X2; public Balloon(int x1, int x2){ X1 = x1; X2 = x2; } }}
新闻热点
疑难解答