我的程序需要一对数字并将它们相互减去,然后将所有差异从对中加起来备份。处理数组中的重叠数字
我的问题是,一些数字重叠,我使用开始和结束时间的数字。我需要找到一种方法,忽略重叠号码,这样的
{{10, 14}, {4, 18}, {19, 20}, {19, 20}, {13, 20}
输入返回共16
,而不是27
。到目前为止,我已经创建了另一个名为hours的数组来检查已经存在的时间。下面是代码部分:
public static int monitoring(int[][] intervals) {
int sum = 0;
int start = 0;
int end = 0;
boolean[] hours = new boolean[24];
int count = 0;
for(int i = 0; i < intervals.length; i++) {
end = intervals[i][1];
start = intervals[i][0];
for(int j = start; j < end; j++) {
hours[j] = true;
count++;
sum += end - start;
}
}
return sum;
解释“重叠数字”的含义,因为它不清楚是什么意思。 – thermite 2015-03-13 18:12:38
这是为什么返回16?哪些配对使用? – 2015-03-13 18:19:24
我认为是'OP'上的拼写错误,他的意思可能是'26' – gtgaxiola 2015-03-13 18:21:37