贪心算法求无序数组最大递增序列

给定一个无序的数组,获取其最大的递增序列。下面使用贪心算法实现:

1、算法实现

cpp 复制代码
void max_seq(int*  arr,int len)
{
    /// 标记递增序列的开始位置
   int  start = 0;
   /// 记录最大的递增序列数
   int  max = 0;

   int  i = 1;
   for( ; i<len; i++)
   {
      /// 如果当前元素大于上一个元素,说明递增序列已经结束,需要重置起始位置
      if(arr[i]  < arr[i-1])
      {
         start = i;
      }
      int  temp =  i - start + 1;
      max  =  max > temp ? max :temp;
   }
   printf("the max  seq is  %d\n",max);
}

2、测试算法

cpp 复制代码
int main()
{
    int arr[]  = { 5,2,1,2,3,1,4,5,6,7,3,8,9} ;
    int len = sizeof(arr)/sizeof(int);
    printf("arr === len =  %d \n",len);
    max_seq(arr,len);
    while (1) {}
    ///getchar()
    exit(0);
}

上述数组最大的递增序列是 1,4,5,6,7 这个5个数,执行程序,可以计算的得到max的值为5

相关推荐
_Narcissus_14 小时前
分治&递归
数据结构·c++·笔记·算法·leetcode·递归·分治
明志数科14 小时前
具身智能数据工程全链路解析:从真实产线采集到LeRobot适配
网络·人工智能·算法
小O的算法实验室15 小时前
AAAI-26,Lehmer编码搜索排列空间的理论与实证分析
算法
lch2011_yb15 小时前
CSP-S 2023 密码锁 题解
算法
OPEN-F16 小时前
C++进阶教程:运算符重载与类型转换
java·c++·算法
牧杉-惊蛰16 小时前
将数组对象根据自定义排列
java·开发语言·算法
inquisiter16 小时前
损失函数在标量和矩阵上的求导对比
线性代数·算法·矩阵
离凌寒16 小时前
一、关于st上制作外部烧录算法时软件识别不到算法文件的问题总结
算法
青 春 记 忆18 小时前
LeetCode 283. 移动零|Python 解法详解
python·算法·leetcode