标签:
题目:class Child { public Child(int i , int v){ index = i; rating = v; } public int index; public int rating; } public int Candy(int[] ratings) { if(ratings == null || ratings.Length == 0){ return 0; } if(ratings.Length == 1){ return 1; } var arr = new List<Child>(); var candies = new int[ratings.Length]; for(var i = 0 ;i < ratings.Length; i++){ candies[i] = 0; arr.Add(new Child(i, ratings[i])); } arr = arr.OrderBy(x=>x.rating).ToList(); for(var i = 0 ;i < arr.Count ; i++){ var index = arr[i].index; if(candies[index] != 0){ continue; } if(index == 0){ candies[index] = ratings[index] == ratings[index + 1] ? 1 : candies[index + 1] + 1; } else if(index == candies.Length - 1){ candies[index] = ratings[index] == ratings[index - 1] ? 1 : candies[index - 1] + 1; } else{ var left = ratings[index-1] == ratings[index] ? 1 : candies[index - 1] + 1; var right = ratings[index+1] == ratings[index] ? 1 : candies[index + 1] + 1; candies[index] = Math.Max(left , right); } } var s = 0; for(var i = 0;i < candies.Length; i++){ s += candies[i]; } return s; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/lan_liang/article/details/47978745