- 博客(6)
- 收藏
- 关注
原创 将数组中的奇数调整到前面
题目:将数组中的奇数调整到前面,且不改变原奇偶数的顺序。分析:用两数组分别装原数组的奇偶数,最后再装入原数组中。空间换时间。#include<iostream>using namespace std;int main(){ int m; cout<<"请输入一维数组的大小:"; cin>>m; int a[m]...
2020-03-18 16:48:40
274
原创 旋转数组的最小值
问题:旋转数组即将一递增数组的前若干个数字移动到数组的最后面。现输入一旋转数组,查找数组中的最小值。分析:我们可以二维立体直观化:高度表示值大小,长度表示数组的序号数,理想化为线性增长。mid共有3种情况:1.mid值在大块中时,数组[mid]>数组[end],令start=mid;2.mid值在小块中时,数组[mid]<数组[end],令end=mid;3.数组[m...
2020-03-18 15:53:53
114
原创 递增数组中的查找
问题:如题分析:由数组的最右上角开始查找,1.当最右上角值 < 目标值时,直接令C(行)+1;2.当新最右上角值 > 目标值时,直接令R(列)-1;3.相等时,打印存在的位置。4.打印无该数。#include<iostream>using namespace std;int main(){ int r,c; cout<<...
2020-03-15 15:31:35
217
原创 矩形覆盖问题(方法很简单)
问题:用2×1的小矩形去填充2×n的矩形,问共有多少种填充的方法?分析:问题的本质是向2×n的矩形框种放小矩形。想让每次放入的都能够将框的长填充满,只有两种放入方式:(1)仅放入一个。(2)放入由两个凑成的2×2的小矩形。所以我们仍然可以用二叉树求解。既我们的初始节点为5(假设n=5),左右子节点则为4、3,后续子节点为3和2、2和1,依次类推。综上所述,易知符合斐波拉契数列,即f...
2020-03-09 17:32:15
1116
原创 跳梯子——变态跳法
题目:与普通跳梯子不同的是每一次可以跳1,2……n阶。#include<iostream>using namespace std;int main(){ int i,j,m; cout<<"请输入n:"; cin>>i; j=m=1; while(j<i) { m=m*2; ...
2020-03-09 16:16:35
398
原创 每日算法题训练———上台阶
问题:一只小青蛙上台阶,它一次可以跳1阶或2阶,现有n阶的台阶,问小青蛙共可以有多少种台阶。问题分析:一阶时为一种,2阶时为2种,3阶时为3种。。。符合fibonacci 数列(使用二叉树可很好理解,如5阶台阶,头节点为5,后续为4和3,后续两节点的子节点为3、2和2、1,依次类推。)。编程求解:迭代:迭代较简单的递归而言,效率更高,因为在递归求解中会涉及很多的重复计算。#inclu...
2020-03-05 12:50:49
437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅