1、用递归颠倒一个栈。

void PushToBottom(stack<int> &mystack,int num)
{
if(mystack.size()==0)
{
mystack.push(num);
return;
}
int temp=mystack.top();
mystack.pop();
PushToBottom(mystack,num);
mystack.push(temp);
} void Reverse(stack<int> &mystack)
{
if(mystack.size()==1)
return;
int temp=mystack.top();
mystack.pop();
Reverse(mystack);
PushToBottom(mystack,temp);
}

递归的关键点:

1、必须定义一个终止条件;否则函数会永远递归下去,直到栈空间耗尽。所以,递归函数一般都用类似if语句来判断终止条件,如果条件成立则继续调用,否则函数结束调用,开始返回。

2、找到本级函数和下一级函数的等价条件。

2.在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。

用两个数组a、b。a[i]、b[i]分别保存从前到i的最大的数和从后到i的最小的数,

3.求随机数构成的数组中找到长度大于=3的最长的等差数列


输出等差数列由小到大: 


如果没有符合条件的就输出


格式:


输入[1,3,0,5,-1,6]


输出[-1,1,3,5]


要求时间复杂度,空间复杂度尽量小

4.

(1).对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)
某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
(2).一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值
  比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; 
  {3,6}{2,4,3} m=2
  {3,3}{2,4}{6} m=3 所以m的最大值为3

最新文章

  1. js 常用方法
  2. 转(zip文件格式说明)
  3. J2EE应用监控后台执行SQL
  4. 使用userdel命令删除Linux用户
  5. For循环复杂练习
  6. 苹果教你六招:设计优秀的icon
  7. ThinkPHP文件上传类
  8. Spring先进的交易管理困难剖析
  9. JQuery 通过方向键控制div上下左右移动
  10. NLP系列(5)_从朴素贝叶斯到N-gram语言模型
  11. 【我们一起写框架】MVVM的WPF框架(三)—数据控件
  12. 为啥用ip不可以访问知乎,而百度却可以?
  13. Spring Boot程序获取tomcat启动端口
  14. springMVC的配置与使用
  15. 虚拟机安装mysql
  16. JavaBasic_11
  17. MySQL(十四)管理维护及性能优化
  18. Python3面向对象——案例-01
  19. TIScript 代码Demo
  20. 基于 Python 和 Pandas 的数据分析(6) --- Joining and Merging

热门文章

  1. c语言 ,回调函数[个人理解]
  2. CSS 实现图片灰度效果 兼容各种浏览器
  3. ZOJ 2972 Hurdles of 110m 【DP 背包】
  4. Spring IOC(DI)之注入方式
  5. Event | Beijing Makerspace
  6. Kafka介绍
  7. Android的BUG(二) - SurfaceTexture中的野指针
  8. 在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误
  9. Win7 和 MAC 系统通过VMware共享文件夹(简单又好用,几乎什么都不用设置)
  10. RVCT的Linux环境变量配置 ARM&#174; RVDS™ 4.1(b713)