posts - 97,  comments - 93,  trackbacks - 0
Problem Statement

A speed radar is installed in a highway zone where the maximum speed limit is maxLimit mph, and the minimum speed limit is minLimit mph. Any reading that is strictly above or below this interval is an infringement.
Periodically, the radar readings are analyzed to make sure that the sensors are working properly. It is assumed that most drivers obey speed limits, and therefore, the radar will be considered faulty if more than 10% of its readings are infringements.
Given the radar readings over a period of time, return the average speed of all cars that are driving within the speed limits. If the radar is faulty, return 0.0.
Definition
????
Class:
SpeedRadar
Method:
averageSpeed
Parameters:
int, int, int[]
Returns:
double
Method signature:
double averageSpeed(int minLimit, int maxLimit, int[] readings)
(be sure your method is public)


Notes
-
The returned value must be accurate to within a relative or absolute value of 1E-9.
Constraints
-
maxLimit will be between 1 and 200, inclusive.
-
minLimit will be between 1 and maxLimit, inclusive.
-
readings will contain between 1 and 50 elements, inclusive.
-
Each element of readings will be between 1 and 200, inclusive.
Examples
0)

1
50
{45, 40, 50}
Returns: 45.0
With all drivers within the speed limits, the return value is just the average speed.
1)

1
50
{42,43,44,45,46,47,48,49,50,51}
Returns: 46.0
There is only one driver infringing the limit, and it represents 10% of the total readings. The average speed of the other readings is 46.0.
2)

1
50
{42,46,48,50,52}
Returns: 0.0
Only one reading is outside the given limits, but it represents 20% of the total number of readings. We therefore assume that the radar is not working and return 0.0.
3)

20
60
{25,45,45,43,24,9,51,55,60,34,61,23,40,40,47,49,33,23,47,54,54}
Returns: 41.68421052631579

This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.
 1 /**
 2   * Author Nicky Qu
 3   * All Rights Reserved Oct 20th, 2007
 4 */
 5 import java.util.Formatter;
 6 
 7 public class SpeedRadar{
 8   private double averageReading = 0.0;
 9    public double averageSpeed(int minLimit,int maxLimit,int[] readings){
10       int sum = 0;
11       int countinF = 0;
12       double rate =0.0;
13       for(int i=0;i<readings.length;i++){
14          if((readings[i]> minLimit-1)&&(readings[i]<maxLimit+1)){
15          sum = sum +readings[i];
16          }else{
17            countinF+=1;
18            rate = countinF*1.0/readings.length;
19            if(rate>0.1){
20               sum = 0;
21               break;
22             }
23          }
24       }
25       averageReading = sum*1.0/(readings.length-countinF);
26       Formatter f = new Formatter();
27       return Double.parseDouble(f.format("%.15e", averageReading).toString());
28    }
29 }


posted on 2007-10-20 13:25 wqwqwqwqwq 阅读(1258) 评论(1)  编辑  收藏 所属分类: Data Structure && Algorithm

FeedBack:
# re: TopCoder TCHS1
2007-10-22 13:29 | 曲强 Nicky
public class SpeedRadar {

public double averageSpeed(int minLimit, int maxLimit, int[] readings) {
int bad = 0;
int sum = 0;
for (int a : readings)
if (a < minLimit || a > maxLimit)
bad++;
else
sum += a;
if(bad*10>readings.length)
return 0.0;
else
return sum*1./(readings.length-bad);
}
}  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910




常用链接

留言簿(10)

随笔分类(95)

随笔档案(97)

文章档案(10)

相册

J2ME技术网站

java技术相关

mess

搜索

  •  

最新评论

阅读排行榜

校园梦网网络电话,中国最优秀的网络电话