博客
关于我
Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
阅读量:792 次
发布时间:2023-02-19

本文共 1208 字,大约阅读时间需要 4 分钟。

Objective-C实现最长递增子序列算法

最长递增子序列(Longest Increasing Subsequence,LIS)问题是寻找一个数组中最长的递增子序列。以下是Objective-C实现该算法的完整代码示例:

#import     NSArray *longestIncreasingSubsequence(NSArray *array) {        if (array == nil || [array count] == 0) {            return array;        }        // 初始化一个数组来保存当前的最长递增子序列        NSMutableArray *lis = [[NSMutableArray alloc] init];        // 遍历数组中的每一个元素        for (id element in array) {            // 初始化一个新的数组来保存当前递增序列的元素            NSMutableArray *temp = [[NSMutableArray alloc] init];            // 插入当前元素到temp数组中            [temp insertObject:element atIndex:0];            // 遍历temp数组中的每一个元素,寻找比当前元素小的元素            for (id subElement in temp) {                if ([element < subElement]) {                    // 如果找到了比当前元素小的元素,则更新当前元素                    if ([temp indexOfObject:subElement] < [temp indexOfObject:element]) {                        [temp swapObjectsAtIndex:i withAtIndex:j];                        i = j;                    }                }            }            // 将temp数组中的元素添加到lis数组中            [lis addObjectsFromArray:temp];        }        return lis;    }    

上述代码实现了最长递增子序列算法,主要思想是使用二分查找优化的 patience sorting 方法。该算法的时间复杂度为O(n log n),是最优解。

转载地址:http://gonfk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现matrix chainorder矩阵链顺序算法(附完整源码)
查看>>
Objective-C实现matrix exponentiation矩阵求幂算法(附完整源码)
查看>>
Objective-C实现MatrixMultiplication矩阵乘法算法 (附完整源码)
查看>>
Objective-C实现max non adjacent sum最大非相邻和算法(附完整源码)
查看>>
Objective-C实现max subarray sum最大子数组和算法(附完整源码)
查看>>
Objective-C实现max sum sliding window最大和滑动窗口算法(附完整源码)
查看>>
Objective-C实现MaxHeap最大堆算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(Brute Force蛮力解决方案)算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(动态规划解决方案)算法(附完整源码)
查看>>
Objective-C实现maxpooling计算(附完整源码)
查看>>
Objective-C实现max_difference_pair最大差异对算法(附完整源码)
查看>>
Objective-C实现max_heap最大堆算法(附完整源码)
查看>>
Objective-C实现MD5 (附完整源码)
查看>>
Objective-C实现md5算法(附完整源码)
查看>>
Objective-C实现MeanSquareError均方误差算法 (附完整源码)
查看>>
Objective-C实现median filter中值滤波器算法(附完整源码)
查看>>
Objective-C实现memcmp函数功能(附完整源码)
查看>>
Objective-C实现memcpy函数功能(附完整源码)
查看>>
Objective-C实现memoization优化技术算法(附完整源码)
查看>>
Objective-C实现memset函数功能(附完整源码)
查看>>