摘要: 1.1思路1: 第一眼看到这样的题目,会举得非常简单,只需要两次遍历数组就可以完成了。第一次遍历,扫描数组中的元素,每次遇到0则count0++,遇到1则count1++,遇到2则count2++,这样一趟下来就能够统计出数组中0,1,2的个数了。然后第二次遍历的时候,只需要对数组进行重新赋值就可以了,从头开始赋值count0个0,count1个1,count2个2。最终完成对数组的排序。1.2思路2: 既然是面试题,那么肯定不会让你这么简单就解决出来了的。面试官说,加入只能进行一次遍历怎么办,然后你就不知道了。 这道题目如果只能进行一次遍历,我们肯定会想到使用多指针。这种题目之前碰到过... 阅读全文
posted @ 2012-11-09 16:26 byfei 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目:求一个数的质因数分解,比如输入90,输出2*3*3*5。#include <iostream>using namespace std;void Decomposition(int nNum){ for(int i=2;i<nNum;) { if(nNum % i == 0) { nNum = nNum /i; cout<<i<<","; } else { i++; } } if(1<nNum) cout<<nNum<<endl;}int main(){ Decomposition(9999); g 阅读全文
posted @ 2012-11-09 10:54 byfei 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。解体思路:如果根节点为空,则深度为0,返回0,递归的出口如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度,比较左右子树深度值,返回较大的那一个通过递归调用#include<iostream>#include<stdlib.h>using namespace std;struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* 阅读全文
posted @ 2012-11-09 10:32 byfei 阅读(263) 评论(0) 推荐(0) 编辑