ios - 在数组中查找最小数字时不考虑负数

标签 ios objective-c algorithm

我有一个 NSNumbers 的 NSMutable 数组,它是从 NSInteger 值转换而来的。如果我混合使用负数和正数,我最终得到的结果是最小的正数是整体上最小的数字,即使有负数也是如此。如果所有数字都是负数,它将找到最小的一个(例如 -2、-1、-1 将给出 -2 作为最小值)。

self.scoreArray = [[NSMutableArray alloc]initWithObjects:self.pOne, self.pTwo...etc];

NSNumber *min = self.scoreArray[0];
for (int i=0; i<[self.scoreArray count]; i++) {
   if (self.scoreArray[i] < min) {
     min = self.scoreArray[i];
   }
NSLog(@"The smallest number is %@", min);
}

我怎样才能改变它,使最小的数字(包括负数)总是正确的?

最佳答案

在您的代码中,min 不是int,它是指向NSNumber 实例的指针。 您必须比较 integerValues。请注意,下面的代码将返回原始的 NSNumber,而不是副本。 我还假设 scoreArray 包含 NSNumber

self.scoreArray = [[NSMutableArray alloc]initWithObjects:self.pOne, self.pTwo...etc];

NSNumber *min = self.scoreArray[0];
for (int i=0; i<[self.scoreArray count]; i++) {

if ([self.scoreArray[i] integerValue] < [min integerValue]) {
     min = self.scoreArray[i];
   }
NSLog(@"The smallest number is %@", min);
}

关于ios - 在数组中查找最小数字时不考虑负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25613857/

相关文章:

algorithm - c/c++ 中用于轮廓坐标检测的图像处理库/算法

ios - UICollectionView 和 UITableView 在 UINavigationController 弹出后调用 scrollViewDidScroll

ios - 访问 NSSet 中对象的属性

ios - 无法将项目添加到 UIView xib 中的 UICollectionView

ios - 如何在 uialertview Controller 的 uitext 字段中没有输入时禁用两个 uialertcontroller 按钮

python - 高效地生成长度为 N 的列表中长度为 K 的循环移位的所有排列

ios - Swift 发送者 UIButton 更改文本

ios - UITableView 核心数据分组和关系

objective-c - 如何从 OSX 10.9 中的 ProcessSerialNum 获取 PID?

java - 如何在 Java 中为数组创建 HeapSort 方法?