面试(C/C++/java)
文章平均质量分 69
lingess
这个作者很懒,什么都没留下…
展开
-
删除数组中重复的元素
题目:乱序的数组中去除重复元素。数组元素类型不一定是int型。要求时间复杂度:O(n). 思路: 利用STL中set的性质,set中不允许有重复的元素,故方法有: 第一种方法是利用 set的特性,set中不允许有相同的值, 所以利用set的构造将相同值清除, 再将set中的值赋值到数组中。 第二种方式是 1,利用vector,先排序,这样数原创 2012-10-31 16:44:28 · 7384 阅读 · 0 评论 -
数组和链表的区别
1、数组是一块连续的空间,声明时长度要确定链表是一块不连续的动态空间,长度可变2、数组的优点是速度快,数据操作直接使用偏移地址链表需要顺序检索节点,效率低3、链表的优点是可以快速查如何删除节点,大小动态分配长度不需要固定链表不存在越界问题,数组有越界问题4、链表的特性是在中间任意位置添加删除元素的都非常的快,不需要移动其它的元素。 链表顾名思原创 2012-07-13 11:57:21 · 1461 阅读 · 0 评论 -
final,finally,finalize的区别
Final--修饰符(关键字)。如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally—在转载 2012-05-10 21:59:13 · 628 阅读 · 0 评论 -
大数阶乘问题研究
1、问题:1000阶乘的结果有多少个连续的0??每出现一个2和5,就会在末尾有一个0,所以只要看从1到1000中总共有多少个2和5就可以了,又因为5总比2少,所以,只要看1000的阶乘中有多少个约数5就可以了。同样,只有末尾是0或者5的数才会有5,所以总共有200个数其中包含5,但是有1000/25=40个数包含2个5,1000/125=8个数包含三个5,1000/625=1个数中包含4个5,原创 2012-10-26 16:40:07 · 1058 阅读 · 0 评论 -
多进程与多线程总结
进程与线程总结一句话就是:线程是进程的一部分,进程是程序的一部分。进程的作用和定义:进程是为了完成用户任务所需要的程序的一次执行过程和为其分配资源的一个基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。线程作用于定义:线程是可执行代码的可分派单元。在基于线程的多任务的环境中,所有进程有至少一个线程,但他们可以具有多个任务。这意味着单个程序可以并发执行两个或者多个任原创 2013-03-14 21:11:17 · 1478 阅读 · 0 评论 -
引用与指针的区别
指针和引用的区别(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = string1; 由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是转载 2013-03-19 10:58:02 · 946 阅读 · 0 评论 -
C++编译器生成的默认函数
C++编译器生成的默认函数话题引入:对象的赋值与复制是如何进行的?他们的区别是什么?如果一个空的自定义类型能否执行这些操作?对象赋值:通过“ = ”运算符重载User a(10),b;b = a;对象复制:调用拷贝构造函数User b;User a(b);或者User a = b; //相当于User a(b); 也是调用拷贝构造函数 二者的区转载 2013-08-20 20:34:11 · 1148 阅读 · 0 评论 -
C语言Union学习
#include #include union U{ int a; char b[4];};void PrintBinary(int n){ /*常规计算二进制的方法,先%2,然后/2*/ int count=0; do { printf("%d",n%2); n = n/ 2; count++; if(count%8 == 0) printf("原创 2013-12-06 11:52:22 · 1767 阅读 · 0 评论