825. Friends Of Appropriate Ages

用presum的方法 统计有多少个小于等于这个数的年龄

 

 

 1 class Solution {
 2     public int numFriendRequests(int[] ages) {
 3         if(ages.length <= 1) return 0;
 4         int[] count = new int[121];
 5         for(int i = 0; i < ages.length; i++){
 6             count[ages[i]]++;
 7         }
 8         int[] preSum = new int[122];
 9         for(int i = 0; i < 121; i++){
10             preSum[i+1] = count[i] + preSum[i];
11         }
12         int res = 0;
13         for(int i = 0; i < ages.length; i++){
14             int max = ages[i];
15             int min = ages[i] / 2 + 7;
16             res += Math.max(0, preSum[max+1] - preSum[min+1] - 1); // 减去自身也要大于0啊!!!
17             // System.out.println("ages:" + ages[i] + res);
18         }
19         return res;
20     }
21 }

 

posted @ 2018-10-26 23:26  jasoncool1  阅读(197)  评论(0编辑  收藏  举报