NSArray * arr = @[@10,@9,@2,@5,@3,@7,@101,@18];
NSMutableArray * mutArr = [[NSMutableArray alloc] init];
int count = 0;
for (int i = 0; i < arr.count; i++) {
[mutArr removeAllObjects];
[mutArr addObject:arr[i]];
for (int j = i+1; j < arr.count; j++) {
if ([arr[j] intValue] > [[mutArr lastObject] intValue]) {
[mutArr addObject:arr[j]];
}
}
if (count < mutArr.count) {
count = mutArr.count;
}
}
NSLog(@"%d",count);
给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:
输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
说明:
可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。
你算法的时间复杂度应该为 O(n2) 。