【发布时间】:2015-08-11 21:19:12
【问题描述】:
我试图找到优雅的方法来解决一个问题。
Issue : Check few numbers continuity.
Value : Start number, End Number (Each Number Group)
例如有组。
First Group : Start 1, End 90
Second Group : Start 91, End 180
Third Group : Start 181, End 225
Forth Group : Start 226, End 310
Fifth Group : Start 311, End 360
您可以查看上面的列表,组正在连接
First Group End : 90 , Second Group Start 91.
Second Group End : 180, Third Group Start 181.
所以所有组号都连接在一起。
Then results is correct, Status show correct
But if there is disconnecting point, status should be not correct.
不正确的示例。
First Group : Start 1, End 90
Second Group : Start 94, End 180
Third Group : Start 181, End 225
First Group End 90, Second Group Start 94. So it's not continuous numbers.
我可以把ArrayLists一一检查, 但我想知道有人有优雅的解决方案来制作动态逻辑吗?
我的解决方案可能是。
ArrayList<Integer> ArrStartRawData = new ArrayList<Integer>();
ArrayList<Integer> ArrEndRawData = new ArrayList<Integer>();
ArrStartRawData.add(Group[0].start);
ArrEndRawData.add(Group[0].end);
ArrStartRawData.add(Group[1].start);
ArrEndRawData.add(Group[1].end);
ArrStartRawData.add(Group[2].start);
ArrEndRawData.add(Group[2].end);
String status = "";
for(int z=0; z < ArrEndRawData.size() ; z++){
Integer num = ArrEndRawData.get(z);
if(z != ArrEndRawData.size()-1) {
if((ArrStartRawData.get(z+1)-ArrEndRawData.get(z)) == 1) {
status = "Correct";
} else {
status = "Not Correct";
break;
}
}
}
任何人有更好的想法来制作动态代码?
谢谢
【问题讨论】:
-
可以输入如下?第一组:开始 1,结束 90 第二组:开始 80,结束 180
-
@AhmadAl-Kurdi 可能但结果不正确!因为它必须是连续的
标签: java algorithm arraylist data-structures