- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 【刷题之路】折纸条问题
请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".亲身示范可以发现,第一条
2016-05-31 20:36:56 980
原创 【刷题之路】完全二叉树判断
完全二叉树被要求除最后一层外,之前的层必须是满二叉树,且在最后一层中,节点都应该集中在左边。所以按照按层遍历的方法,来遍历整棵二叉树class CheckCompletion {public: bool chk(TreeNode* root) { // write code here queue temp; TreeNod
2016-05-31 20:12:54 274
原创 【刷题之路】判断平衡二叉树
采用递归的方式,不断返回左右子树中较大的值作为当前节点的depth,当前节点又与其他一个节点作为上一节点的左右子树,一旦某一左右子树递归叠加深度差大于一,以后全部返回falseclass CheckBalance {public: bool check(TreeNode* root) { // write code here int depth
2016-05-31 19:53:55 322
原创 【刷题之路】二叉树的前中后序遍历(非递归)
经典算法class TreeToSequence {public: vector > convert(TreeNode* root) { // write code here vector > res; res.push_back(fronttree(root)); res.push_back(midtree
2016-05-31 10:42:47 242
原创 【刷题之路】二叉树前中后序遍历(递归)
经典算法class TreeToSequence {public: vector > convert(TreeNode* root) { // write code here vector front; vector mid; vector back; vector > res;
2016-05-31 10:16:29 293
原创 【刷题之路】二叉树先序序列化
将一颗二叉树先序遍历并输出一个字符串,每个数字后加‘!’作为分隔,空节点记为‘#!’class TreeToString {public: string toString(TreeNode* root) { string res; string temp; stack p1; TreeNode* cur;
2016-05-31 09:53:24 310
原创 【刷题之路】小范围排序练习
已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。因为每个元素移动距离不超过k,可以考虑使用堆排序,比如说数组前K个数中必然有整个数组的最小值,1到k+1个数中必然有第二大的数,以此类推所以,
2016-05-30 21:38:20 2946
原创 【刷题之路】计数排序
经典算法class CountingSort {public: int* countingSort(int* A, int n) { // write code here int max=A[0],min=A[0],i,j=0,diff; for(i=0;i if(max i
2016-05-30 21:36:13 304
原创 【刷题之路】堆排序
经典算法class HeapSort {public: int* heapSort(int* A, int n) { // write code her maxheap(A,n); for(int i=n-1;i>=0;i--){ swap(A[0],A[i]); //大根堆堆顶元素为堆中最大的,将堆
2016-05-30 21:12:01 371 1
原创 【刷题之路】二叉树按层打印
有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。这个题,指定两个指针,last与nlastlast指向当前树节点,nlast指向每一层最后的节点。class TreePrinte
2016-05-30 21:05:01 263
原创 【刷题之路】冒泡排序
经典算法class BubbleSort {public: int* bubbleSort(int* A, int n) { // write code here int i,j; for(i=0;i for(j=0;j if(A[j]>A[j+1]) swap(
2016-05-30 21:04:12 229
原创 【刷题之路】快速排序
经典算法class QuickSort {public: int* quickSort(int* A, int n) { // write code here quicks(A,0,n-1); return A; } void quicks(int* a,int left,int right){
2016-05-30 21:02:47 301
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人