![](/img/trans.png)
[英]I would like to create an “or” relationship rather than “and” between the filters of my table in my Java GUI
[英]Why would my loop start at 1 rather than 0?
我正在做一些关于codingbat的练习,因为我一直在努力使用arrays。 问题是:
“返回整数数组的“居中”平均值,我们会说这是值的平均值,除了忽略数组中的最大值和最小值。如果最小值有多个副本,则只忽略一个复制,同样对于最大值。使用 int 除法产生最终平均值。您可以假设数组的长度为 3 或更多。
除了 1 部分外,我能够正确编写解决方案。
正确的代码是:
public int centeredAverage(int[] nums) {
int max = nums[0];
int min = nums[0];
int add = nums[0];
for(int i = 1; i < nums.length; i++){
add += nums[i];
if(nums[i] > max){
max = nums[i];
}
else if(nums[i] < min){
min = nums[i];
}
}
return (add - max - min) / (nums.length - 2);
}
我的问题是为什么我们从 int i = 1 而不是 0 开始? 如果你从 1 开始,你不是跳过一个单元格吗?
初始化:
int max = nums[0];
int min = nums[0];
int add = nums[0];
为您处理 i = 0 时的情况。
当您从数组的零索引设置最大值、最小值和添加时。通过这样做,您可以从单个循环迭代中找到最小值和最大值(即通过比较数组的其他元素中的这些值)。 如果你还没有这样做,那么你必须使用其他一些逻辑来找到数组的最小值和最大值,比如 O(n)^2 soln。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.