最近在写一个电厂的计算类app,其中有一个区间计算,让智商捉急的我想了好久,虽然写出来了,但是都是泪啊,直接上代码
基本思路
基本思路如上图,代码如下:
NSMutableArray *maxArr = [[NSMutableArray alloc]init];
NSMutableArray *minArr = [[NSMutableArray alloc]init];
for (M_Qnet *model in self.qnetArray) {
[maxArr addObject:model.maxvalue];
[minArr addObject:model.minvalue];
}
//保存最小值以及最小值的index
float min = [minArr.firstObject floatValue];
int minIndex = 0;
//保存最大值以及最大值的index
float max = [maxArr.firstObject floatValue];
int maxIndex = 0;
for (int i = 0; i < minArr.count; i ++) {
float numOfMin = [minArr[i] floatValue];
float numOfMax = [maxArr[i] floatValue];
if (numOfMin < min) {
min = numOfMin;
minIndex = i;
}
if (numOfMax > max) {
max = numOfMax;
maxIndex = i;
}
}
NSLog(@"最小值:%.2f 最大值:%.2f",min,max);
float location = [maxArr[minIndex] floatValue];
for (int i = 0; i < minArr.count; i ++) {
for (int j = 0; j < minArr.count; j ++) {
//如果判断条件是自定义的改这里的符号就可以
if ([minArr[j] floatValue] > min && [minArr[j] floatValue] <= location && [maxArr[j] floatValue] > location) {
location = [maxArr[j] floatValue];
break;
}
}
}
if (location >= max) {
NSLog(@"是连续区间");
return YES;
}else
{
NSLog(@"不是连续的区间");
return NO;
}
其实不算难,但是由于计算指标过多影响判断,没办法准确的去确定自己的需求和方法,长记性
网友评论