考研面试问题

文章目录

          • TOPN问题
          • new与malloc的区别
          • const和define的区别
          • 交换两个变量的值不用第三个变量
          • 1~n中找到缺失的数
          • class和struct的区别

TOPN问题

m个数中取n个最小的数,利用最小堆即可,时间复杂度为O(mlogn);也可以用分治法
多种方法

new与malloc的区别
  • new是完成动态内存分配并自动执行构造函数,建立的是一个对象,对于一个类来说,malloc无法在创建的同时自动执行构造函数
  • 还有返回值是否需要强制类型转换以及是否显式指出所需内存尺寸等
const和define的区别
  • define是在编译的预处理阶段起作用;const是在编译、运行的时候起作用
  • define没有类型检测;const有
  • define只是展开,有多少地方就替换多少次;const只存储一个地方,节省空间
交换两个变量的值不用第三个变量
  • 加减或乘除:a=a+b;b=a-b;a=a-b;
  • 异或:a=ab;b=ab;a=a^b;
1~n中找到缺失的数
  • 累加相减,会导致溢出
  • 异或,11=0,22=0,0^k=0,所以先n-1个数异或再与1~n中所有的数分别异或可得到缺少的数
class和struct的区别

基本没什么区别,都可以继承与构造,唯一区别就是默认访问控制,struct是public,class是private

你可能感兴趣的:(概念理解)