自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 C++基础之管理指针成员

通常复制指针时,只复制了指针中的地址。而不会复制指针指向的对象。 C++中管理指针的三种方法: 1、指针成员采取常规指针型行为。这样的类具有指针的所有缺陷但无需特殊的复制控制; 2、类可以实现所谓的智能指针行为。指针所指向的对象是共享的,但类能够防止悬垂指针; 3、类采取值型行为。指针指向的对象是唯一的,由每个类对象独立管理。一、悬垂指针 因为类直接复制指针,会使用户面临潜在问题:H...

2018-08-21 13:14:35 392

原创 C++之复制控制三大操作

当定义一个新类型的时候,需要显式或隐式地指定复制、赋值和撤销该类型的对象时会发生什么,这就需要三大特殊成员:复制构造函数、赋值操作符和析构函数来达到。如果没有定义复制构造函数和赋值操作符,编译器会自动定义。 这三种成员统称为复制控制,编译器自动实现这些操作,但类也可以定义自己的版本。 一、 复制构造函数是特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用,当定...

2018-08-20 13:51:01 415

原创 C++之类的基础

成员函数 将关键字const加在形参表之后,就可以将成员函数声明为常量:double avg_price() constconst成员不能改变其所操作的对象的数据成员,const必须同时出现在声明和定义中,若只出现在一处,就会出现编译时错误。为类的成员使用类声明 只有当类定义已经完成,数据成员才能被指定为该类类型。如果该类型是不完全类型,那么数据成员只能是指向该类类型的指针或引用...

2018-08-18 14:39:25 161

原创 C++之构造函数

构造函数 创建一个类类型的对象时,编译器会自动使用一个构造函数来初始化该对象,构造函数是一个特殊的、与类同名的成员函数,用于给每个数据成员设置适当的初始值。 构造函数通常使用一个构造函数初始化列表,来初始化对象的数据成员:Sales_item(): units_sold(0), revenue(0.0) {}构造函数初始化列表由成员名和带括号的初始值组成,跟在构造函数的形参表之后,并...

2018-08-18 14:35:36 1347

原创 面试题之数组中重复的数字

题目1 在一个长度为n的数组里的所有数字都在0~n-1范围内。数组中某些数字是重复的,但不知有几个数字重复,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 思路 若采用先排序,则其时间复杂度O(nlogn) 若采用哈希表,时间复杂度O(n),空间复杂度为O(n)。 最佳思路 从头扫描数组,扫描到下标为i的数字时,首先比较这个数字(m)是不是等于i,若是,接着扫描下一个,若不...

2018-08-14 21:59:43 402

原创 查找和排序

查找包括顺序查找、二分查找、哈希表查找和二叉排序树查找。如果要求是在排序数组(或部分排序数组)中查找一个数字或者统计某个数字出现的次数,可以采用二分查找。 哈希表优点是时间复杂度为O(1),是效率最高的查找方式。缺点是需要额外的空间来实现哈希表。 排序比查找复杂,包括比较插入排序、冒泡排序、归并排序、、快速排序面试要求能够从额外空间消耗、平均时间复杂度和最差时间复杂度等方面比较他们的优缺点。快...

2018-08-14 20:14:25 193

原创 查找算法之旋转数组的最小数字

(详见剑指offer面试题11)把一个数组最开始的几个元素搬到数组的末尾,称之为数组的旋转。遍历数组的时间复杂度为o(n),显然没有利用旋转数组的特性,不满足面试要求。 在排序数组中用二分查找的时间复杂度为O(logn)。旋转数组特性:其实际上可以划分为两个排序的子数组,前面的子数组元素都大于等于后边子数组的元素。同时最小的元素恰好是这俩数组的分界线。因此可以将二分查找引入旋转数组的查找。易...

2018-08-14 19:27:06 283

原创 面试题之位运算

位运算共有5种:与、或、异或左移和右移。异或,就是两个操作数相同为0,相异为1.符号为”^”。 左移n位表示,最左边的n位被丢弃,同时在最右边补上n个0。符号m<...

2018-08-14 16:33:29 271

原创 算法之递归和循环比较

递归的缺点 首先递归实现效率不如循环。 递归由于是函数调用自身,而函数调用要消耗空间和时间,每一次调用都需要在内存栈中分配空间,来保存参数、返回地址及临时变量,并且往栈里压入数据和弹出数据都需要时间。递归中有很多计算是重复的,因此带来很大的负面影响。其本质是把一个问题分解成两个和多个小问题,如果多个小问题存在相互重叠部分,就造成重复计算。 动态规划用递归分析问题,但由于递归分解的子问题存在大...

2018-08-14 10:31:20 4142 1

原创 算法之回溯法

回溯法回溯法非常适合由多个步骤组成的问题,并且每个步骤都有多个选项。当我们在某一步选择了其中一个选项时,就进入下一步,然后面临新选项,重复选择,直至最终状态。经典面试题1 矩阵中的路径(详见《剑指offer》面试题12) 易错点 1.由于路径不能重复进入矩阵的格子,因此还需定义和字符矩阵大小一样的布尔值矩阵,标识路径是否进入每个格子。 2.终止递归的标志:路径字符串上的所有字符都在...

2018-08-13 16:54:05 157

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除