笔试面试
文章平均质量分 82
曲小鑫
我的学习笔记
展开
-
二叉树各种操作的总结
求二叉树中的节点个数求二叉树中叶子节点的个数求二叉树的深度求二叉树第K层的节点个数递归遍历前序中序后序非递归遍历前序中序后序层序1 前序遍历2 中序遍历3 后序遍历4 层序遍历将二叉查找树变为有序的双向链表判断两棵二叉树是否结构相同判断二叉树是不是平衡二叉树判断二叉树是否是搜索二叉树求二叉树中两个节点的最低公共祖先节点求二叉树中节点的最大距离由前序遍历序列和中序遍历序列重建二叉树原创 2015-07-26 11:43:48 · 5710 阅读 · 1 评论 -
挑选镇长问题
试题来源:http://www.nowcoder.com/question/next?pid=151724&qid=25196&tid=718946360员工桂最近申请了一个长假,一个人背着包出去自助游了。 路上,他经过了一个小镇,发现小镇的人们都围在一棵树下争吵。桂上前询问情况,得知小镇的人们正缺一个镇长,他们希望能选一个知名又公正的镇长,即,大家希望能选出一个人,所有人都认识他,但同时他不原创 2015-08-13 16:24:36 · 2541 阅读 · 1 评论 -
扑克牌大小,错误统计,给出最高分
扑克牌大小最高分是多少简单错误记录2016华为笔试题:1. 扑克牌大小扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):) 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER 输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空原创 2015-09-03 21:51:52 · 1628 阅读 · 0 评论 -
C/C++ 知识点总结
静态编译与动态编译malloc和new的区别关于STL中的map和hash_mapSTL 中的 set 和 mapstatic作用extern 的作用struct 和 class 区别堆 和 堆栈内存重载Overload Override 和 Overwrite排序算法的时空复杂度稳定性分析如何选择排序算法CC内存泄露和检测7JAVA的垃圾回收机制C派生类对象的初始化如原创 2015-09-30 21:49:54 · 11647 阅读 · 3 评论 -
C/C++ 中的特殊关键字:volatile, register, restrict, __attribute__
1.volatile: 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址(内存)中读取,而不会使用寄存器中的缓存值;volatile int i=10; 2.register: 使用修饰符register声明的变量属于寄存器存储类型。该类型与自动存储类型相似,具有自动存储时期、代码块作用域和内连接。声明为register仅仅是一个请求,因此该变量仍然可能是普通的自动变量。无论哪种情况原创 2015-08-19 14:53:20 · 1920 阅读 · 0 评论 -
字符串匹配:KMP
参考:从头到尾彻底理解KMP 在字符串 str 中 匹配模式串 pattern 1. 计算模式串的 next 数组; 2. 在字符串中匹配模式串;当一个字符匹配时,str[i++], pattern[k++] 继续匹配下一个字符;当当前字符不匹配时,根据 next 数组移动模式字符串,k = next[k] next 数组:描述模式串中最长相同的前缀和后缀的长度。#include <iostr原创 2015-08-17 16:45:09 · 878 阅读 · 0 评论 -
二分查找的递归和非递归实现,二分查找的扩展
凡是有序数组中的查找问题,都应该联系二分查找解决1. 递归实现// 递归二分查找int BinarySearch(int nums[], int left, int right, int key) { if (left > right) { return -1; } int mid = left + ((right - left) >> 1); if原创 2015-08-31 22:24:52 · 1702 阅读 · 0 评论 -
memcpy, strcpy, strlen, strcmp, itoa, atoi 的函数实现
不使用库函数,实现 memcpy, strcpy, strlen, strcmp, itoa, atoi. 本文地址 : 1. memcpy内存拷贝函数。 函数原型void *memcpy(void*dest, const void *src, size_t n); // n 为字节数注意问题: 1. 判断输入地址有效性 2. 将src,dst 指针强制转换成字符型指针,逐字节复制 3.原创 2015-08-31 16:50:38 · 1303 阅读 · 0 评论 -
线性排序之基数排序,桶排序,计数排序
基数排序计数排序桶排序基数排序,桶排序,计数排序是三种线性排序方法,突破了比较排序的O(nlogn)的限制。但是只适用于特定的情况。基数排序以下为维基百科的描述: 基数排序 : 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。 基数排序的方式可以采用L原创 2015-07-20 11:03:48 · 1916 阅读 · 0 评论 -
排序算法总结
本文将给出六大经典排序的实现。 简单排序算法:冒泡,插入,选择 改进排序算法:快排,归并,堆排以下排序用到的交换函数:void swap(int &A, int &B) { int temp = A; A = B; B = temp;}1. 冒泡排序2个相邻的元素相互比较,不满足顺序则交换;每遍历一次数组,使一个元素处于最终位置。 时间复杂度O(n2)O(n^2) 空间复杂度O(1)原创 2015-07-28 15:51:53 · 1029 阅读 · 0 评论 -
你所不知道的传输层
原文链接:http://java-mzd.iteye.com/blog/1007577你所不知道的传输层题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。 1. 传输层的主要功转载 2015-08-10 09:43:04 · 555 阅读 · 0 评论 -
28 - 字符串的全排列和组合
字符串的排列题目描述:http://ac.jobdu.com/problem.php?pid=1369 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。分两步: 第一步:求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符都交换一次; 第二步:固定第一个位置原创 2015-07-27 15:48:24 · 1022 阅读 · 0 评论 -
最后一个字符 : 找出只出现一次的第一个字符
试题来源:http://www.nowcoder.com/test/151724/begin正在挑战一个CrackMe的你,把需要填写的前面几位密码都正确猜出了,可是这最后一位密码,好像藏得有点深。CrackMe的作者还挑衅般的在里面藏了个.tar.gz文件,解压缩出来,里面写道你要的最后一个字符就在下面这个字符串里。这个字符是下面整个字符串中第一个只出现一次的字符。 (比如,串是abaccdeff原创 2015-08-13 16:46:35 · 2130 阅读 · 1 评论