摘要: 树的遍历: 先序(根左右):先输出根节点,再递归输出左右子节点 中序(左根右):先递归输出左子节点,再输出根节点,再输出右子节点 tips:左右子节点分别为2i+1和2i+2; 先序遍历的代码: void preOrder(int *arr,int i) { //设计递归出口 if(i>=len(a 阅读全文
posted @ 2020-02-25 16:07 美好事物 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目表述:给定两个排序后的数组A和数组B,其中A的末端有足够的缓冲空间容纳B。编写一个方法,将B合并入A并排序 #include<stdio.h> void combine(int *a,int *b); int len(int *a); int main() { int a[100]={1,4,9 阅读全文
posted @ 2020-02-24 18:44 美好事物 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 阅读全文
posted @ 2020-02-21 18:58 美好事物 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 找出在数组中的最长递增子序列 数组:1,9,2,5,7,3,4,6,8,0 最长递增子序列:3,4,6,8 思路: 遇到大的就移动,如果在某一个位置变小了就计算这一段的长度(双指针)不停更新最大的length一个在前线,一个在后面作为游标,最后结束了看一下战线拉了有多长 public class 最 阅读全文
posted @ 2020-02-21 18:44 美好事物 阅读(1478) 评论(0) 推荐(0) 编辑
摘要: 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,改数组的最小值为1. 分析:既然说是改造的二分法,那么就是找到中间值,然后根据左边还是右边去找最小值,然 阅读全文
posted @ 2020-02-21 18:39 美好事物 阅读(178) 评论(1) 推荐(0) 编辑
摘要: 分析:从最后一步分析,能有的情况有三种情况构成,写出如图所示的方程 //和斐波拉契相似 int void f(int n) { //考虑出口 if(n==0) return 0;//正常思路是返回0 if(n==1) return 1;//通过自己想可以得出只有1种方式 if(n==2) retur 阅读全文
posted @ 2020-02-21 18:25 美好事物 阅读(1202) 评论(0) 推荐(0) 编辑