给一个数组列表说 [3,10,9,11,10,2,9],我需要编写一些代码来挑选序列 [10,9,11,10]。
必须这样做的方法是从一个元素创建一个区间,然后检查下一个元素是否在该区间内。
外汇:
从元素 3 我们得到区间 3*0,80 和 3*1,20 = [2.4 - 3.6]。现在检查下一个元素 10 是否在该区间内 - 它不是。移动到下一个元素,10。
从 10 我们得到区间 [8 - 12]。我们看到 9、11 和 10 都在那个区间,2 并没有那么停止!
是)我有的:
import java.util.ArrayList;
import java.util.List;
public class HelloWorld {
public static void main (String[] args){
List<Integer> tops = new ArrayList<Integer>();
tops.add(3);
tops.add(10);
tops.add(9);
tops.add(11);
tops.add(10);
tops.add(2);
tops.add(9);
List<Integer> newtops = new ArrayList<Integer>();
for (int i = 1; i < tops.size()-1; i++){
double minValue = tops.get(i)*0.80;
double maxValue = tops.get(i)*1.20;
for (int k = i+1; k < tops.size()-1; k++){
if (tops.get(i) > minValue && tops.get(i) < maxValue){
newtops.add(tops.get(i));
}
else{
break;
}
}
}System.out.println(newtops);
}
}
输出:[10、10、10、10、9、9、9、11、11、10]
预期输出:[10、9、11、10]