求一个数组的最长递减子序列 比如{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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SPI、I2C、UART(即串口)三种串行总线详解

以下内容均来源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 几个串口协议学习整理 UART IIC SPI_mainn的博客-CSDN博客 SPI、I2C、UART三种串行总线的原理、区别及应用_嵌入式Linux,的博客-CSDN博客 RS-232 和 UART 之间有什么区别? - 知乎…

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型…

网络4 交换机终端命令

1、switch> 是用户模式 en/enable switch# 是特权模式 conf t/ configure temral switch(config)#是全局模式 int f0/1 /interface f0/1 switch (config-if)# 是接口模式2、show version 显示系统ISO 名称ctrlE 把光标移动到命令行结尾处ctrlA 把光标移动…

解决Office系列安装不上的办法

安装Office时提示“扩展属性不一致”的解决办法:使用系统自带的输入法,Win空格键就搞定了。转载于:https://blog.51cto.com/dreamerhan/1313823

用数据辅助设计-搜索中的实践

设计时不能单凭经验和直觉,因为涉及到的目标人群、场景、操作习惯的不同。为了获取更准确、有效的信息去辅助、检测设计,设计师会选择定性(用户访谈、焦点小组)和定量(调研问卷、网站数据分析)的方式进行用…

在IBM服务器安装Windows server 2012的心得

一个简单的问题被我搞复杂了! 前些日子,由于连接服务器时卡顿、没有反应,我把服务器强制重启了,之后很不幸地,系统开机进入界面后,不断地转圈圈,一段时间后提示“你的电脑遇到问题,…

fd_set 详解

一、winsock中#include <winsock.h> 原型 int select( int nfds , fd_set* readfds , fd_set* writefds , fd_set* exceptfds , const struct timeval* timeout ); nfds&#xff1a;本参数忽略&#xff0c;仅起到兼容作用。 readfds&#xff1a;&#…

VisualVM远程连接Linux服务器通过jstatd方式监控JVM内存状态

2019独角兽企业重金招聘Python工程师标准>>> VisualVM远程连接Linux监控JVM的方式有两种,一种是jstatd,另外一种是JMX,这里描述jstatd的方式: 1.通过google/baidu出来的文章做法大致都雷同这里给出我开始参考的连接http://lixjluck.iteye.com/blog/516447 2. 但是…

STRUTS2 标签调用静态方法

struts2 ognl 调用静态方法 用ognl的静态调用<s:property value"%{java.lang.SystemcurrentTimeMillis()}"/>来显示,发现结果集为空.查了好多资料都发现这个是正确的引用,困惑......最后在查struts2.1.2的文档时发现struts2.1.2中加了很多配置元素,其中有一个名…

一些自己编写的字符串操作函数

1、编写strcat函数。&#xff08;在目的字符串结束处添加源字符串&#xff09; /*已知strcat函数的原型是char *strcat(char *strDest, const char *strSrc); 其中strDest 是目的字符串&#xff0c;strSrc 是源字符串。 不调用C / C 的字符串库函数&#xff0c;请编写函数 strc…

Android开发实践:常用NDK命令行参数

Android提供了NDK工具&#xff0c;用来编译native代码&#xff08;c/c&#xff09;&#xff0c;该工具配置好了相关的交叉编译环境和工具链&#xff0c;只需要你简单地编写几个.mk文件即可将你的c/c代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程…

QT问题记录之warning: ‘xxx’ will be initialized after [-Wreorder]

QT问题记录之warning: ‘xxx’ will be initialized after [-Wreorder] 在使用Qt进行Application开发的过程中&#xff0c;经常出现如下警告&#xff1a; warning: ‘xxx’ will be initialized after [-Wreorder] struct TreeNode {TreeNode *left;TreeNode *right;int val;//…

SD读写流程

一、1bit-4bit数据传输对比 CPU/EDMA与SD的数据传输可以设置为1bit或4bit模式&#xff0c;1bit模式仅使用DAT0数据线&#xff0c;4bit模式使用DAT3-DAT0四位数据线。例如&#xff0c;传输512字节的数据&#xff0c;传输的数据格式如下图所示&#xff1a; 二、读写命令 读写分为…

ubuntu14.04 64bit主机下面安装android的NDK开发环境

通过wget工具下载bin包&#xff1a; $ wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin1 2&#xff0c;因为下载下来的是bin包&#xff0c;所以可以直接移动到需要安装的目录下面。 将Android NDK bin包移动到你想要的目录下,如 /opt/NDK/1 $ …

二维数组数和指针操作的理解

#include<string.h> #include <stdio.h> int main(void) {int a[4][2] { { 2,4 },{ 6,8 },{ 1,3 },{ 5,7 } };char *p[5] { "acvsadf", "cwerqwenn", "tttttt" };//字符串指针数组int c[4] { 0,1,2,3 };int *ptr c;/*这个正确&…

最近重构公司消息服务的架构设计

目标 研发一套独立的消息系统&#xff0c;此系统进行集中配置管理供各业务系统使用&#xff0c;用于支撑站内信、短信通知、短信验证码、邮件、微信消息、APP消息、IM等消息形式。 架构 1&#xff09; 基于消息队列采用发布、订阅模式。消息的生产者为对外的消息接口&#xff0…

高性能的MySQL(6)查询慢与重构查询

只有好的库表结构、合理的索引还不够&#xff0c;我们还需要合理的设计查询&#xff0c;齐头并进&#xff0c;一个不少才能充分发挥MySQL的优势。一、查询为什么会慢&#xff1f;每一个查询由一系列的子任务组成&#xff0c;每个子任务都会消耗一定的时间。这个我们在之前的单个…

生成n个从1到M(n = M)之间的不重复的随机数问题(洗扑克牌算法)

结合了对数组的使用、随机数生成等算法的知识。 学习这种由特殊到一般性的学习方法。面对复杂问题时候的逻辑僵滞和停顿。要加快速度锻炼这种缺陷&#xff0c;使之得到弥补。 思维僵滞的时候可以把问题联想成具体的模型&#xff0c;做到在脑海中有个具体的形象。这总比茫然一片…

CFLAGS详解

CFLAGS 表示用于 C 编译器的选项&#xff0c; CXXFLAGS 表示用于 C 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS&#xff1a; 指定头文件&#xff08;.h文件&#xff09;的路径&#xff0c;如&#xff1a;CFLAGS-I/usr/include -I/path/include。同样地…

一道大小端题目

今天看到一道关于大小端的题目&#xff0c;觉得很有趣&#xff0c;理解一番后摘抄如下&#xff1a; 题目&#xff1a; 示意图&#xff1a; 结果说明&#xff1a; 小端模式 大端模式