求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...
目前想到的一个方法,就是用栈来寻找,说下思想:(栈中的data为元素所在的位置,这意味着出栈和进栈的都是索引值,所以比较的时候根据索引找到其值后比较)
(1)栈为空,把一个元素入栈。9
(2)把小于栈顶的元素依次入栈。9 4 3 2,入栈完成后记录一下该组合
(3)若栈为空,结束,非空,则出栈,寻找小于栈顶值大于出栈值的元素,出栈后当栈为空时,找到一个比弹出元素大的即可。(开始查找的位置出栈值所在位置的后一个)
(4)若找到,则把该元素入栈,跳到步骤(2)
(5)若找不到,则继续步骤(3)
(6)其中组合最大的即为所求
模拟一下该过程
9(1)
9 4 3 2(2)
9 4 3(3)(5)
9 4(3)(5)
9 5(3)(4)
9 5 4 3 2(2)
9 5 4 3 (3)(5)
9 5 4 (3)(5)
9 5(3)(5)
9(3)(5)
(3)(5)
结束
转载于:https://www.cnblogs.com/GoAhead/archive/2012/05/30/2525978.html
求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...相关推荐
- 算法 求一个数组的最长递减子序列 C
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! //** ...
- 算法 - 求一个数组的最长递减子序列(C++)
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net /** 求一个数组的最长递减子序列 - C++ - ...
- 《团队开发一(求一个数组的连续的子数组之和的最大值)》
<团队开发一(求一个数组的连续的子数组之和的最大值)> (1)设计思想:一般的,求一个数组的最大子数组之和即是按数组顺序依次让前几个数的和与下一个数进行比较,设一变量来装每次比较后的较大的 ...
- java 最大子数组_求一个数组中子数组的最大和算法(Java实现)
前几天在微信订阅号"待字闺中"中看到的一篇文章<小技巧求一个数组中子数组的最大和>,提供下Java的实现,并且在对题目做下小修改,本来打算直接在微信里直接回复,但是发现 ...
- 求一个数组的非空子集
//求一个数组的子集 #include <vector> #include<iostream> using namespace std; vector<vector< ...
- 13.在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。(左神算法基础班源码)
package basic_class_01; /*** *小和问题在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和.求一个数组的小和.例子:[1,3,4,2,5]1左边比1小的数 ...
- python求数组平均值_用python求一个数组的和与平均值的实现方法
用python求一个数组的和与平均值的实现方法 如下所示: # coding = GBK a =[1,2,3,4,5] sum=0 b = len(a) print("这个数组的长度为:&q ...
- 求一个数组的最大k个数(java)
问题描述:求一个数组的最大k个数,如,{1,5,8,9,11,2,3}的最大三个数应该是,8,9,11 问题分析: 1.解法一:最直观的做法是将数组从大到小排序,然后选出其中最大的K个数,但是这样的解 ...
- 算法12--topK求一个数组中第k大的数
求一个数组中第k大的值 解法一: 建立一个k个元素的最大堆,首先将数组中前k个元素放入堆中,此时堆顶元素为第k大的元素,后面继续遍历数组,比较堆顶元素与数组中元素值,当数组中元素小于堆顶元素时,将堆顶 ...
- 数组的最长递减子序列java_求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...
问题描述:给出一个数列,找出其中最长的单调递减(或递增)子序列. 解题思路: 动态规划.假设0到i-1这段数列的最长递减序列的长度为s,且这些序列们的末尾值中的最大值是t.对于a[i]有一下情况: ( ...
最新文章
- C# FTP下载文件
- 【控制】《自动控制原理》胡寿松老师-第4章-线性系统的根轨迹法
- 办公室分配方案python_Python自动化办公室(1),python,一
- linux两个数字正则,正则表达式-Linux readelf显示具有不同数字系...
- SEO关键字优化策略-Google Analytics提高关键字转化的的6步骤
- ORACLE:索引中丢失IN或OUT参数
- Rabbitmq消息过期时间设置
- 23种设计模式(八)对象创建之抽象工厂
- paip.mysql 全文索引查询空白解决
- 通过 docker 搭建自用的 gitlab 服务
- 搭建和配置支撑2000人同时观看的流媒体服务器系统(Linux步骤详解)
- linux磁盘连接方式,LaCie 最新的外接硬盘以 USB-C 作为连接方式
- 我们如何走到今天:重塑世界的6项创新
- 解决烘焙光照贴图有黑斑
- Android Studio掷骰子生成随机数(Java)
- 得出一个月有多少工作日
- 网页播放海康威视大华华为摄像头RTSP流,不需转码转流,延迟毫秒级,支持多路播放、H.264/H.265及1080P/2K/4K
- 【模拟电路】电极驱动H桥
- 继承QGraphicsObject自定义图元
- 贝茨视觉训练法 [20160316]
热门文章
- linux中创建目录树,如何在C++/Linux中创建目录树?
- cross_compile = arm-linux-,cross compile grpc for arm
- angularjs 开发流程_超级棒的30款web前端开发工具汇总,一定要收藏!
- cass生成曲线要素文件_几种常见的CASS字体异常问题,教你如何解决
- Java在Windows下导出xml文件到Linux服务器上
- 剑指offer:33-37记录
- C语言:---gdb多线程调试
- PaperNotes(6)-GAN/DCGAN/WGAN/WGAN-GP/WGAN-SN-网络结构/实验效果
- C++标准库 第七章 STL迭代器
- C++primer 第 5 章语句 5.2语句作用域 5.3条件语句 5 . 4 迭代语句 5.5跳转语句 5.6 try语句块和异常处理