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

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

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

相关推荐
(╹◡╹)9 小时前
18.剪枝
算法·机器学习·剪枝
Fa_Mian_Tuan10 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
hanhahai10 小时前
指针与函数(函数指针与指针函数)
算法
ValhallaCoder11 小时前
Leetcode-hot100(2026.08.17)
python·算法·leetcode
泡沫冰@11 小时前
GO 语言基础
开发语言·算法·golang
luj_176812 小时前
元设计的诱惑与现实
c语言·开发语言·c++·经验分享·算法
小星星闪亮登场12 小时前
ST表--倍增思想
开发语言·数据结构·c++·算法·思维
马可家的菠萝12 小时前
Vue3 + Canvas 手绘笔记工程化实践:别把画布只当成一张 PNG
前端·vue.js·算法
watersink12 小时前
机器学习极大似然估计与EM算法
人工智能·算法·机器学习
叠层归一研究院13 小时前
如何用程序搭建一个 AGI 种子系统(一):从向量种子到无限生长引擎
人工智能·python·算法·机器学习·agi