目录
1.数据结构和算法概述
- 什么是数据结构?
- 数据结构是一种特定的计算机存储、组织数据的方式,其宗旨是使计算机能够高效的使用数据
- 什么是算法?
- 算法:有限时间内解决问题的一系列清晰指令
- 效率:
- 空间
- 时间
分类:
线性结构和非线性结构
(1)线性结构
特点:数据元素之间存在一对一的关系
有两种不同的存储结构,包括:
- 顺序存储结构:内存分配时,地址是连续的
- 数组,链表,栈,队列
- 链式存储结构:链表中的存储元素的地址不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
- 二维数组,多维数组,广义表,树结构,图结构
(2)非线性结构
非线性结构包括:
- 二维数组
- 多维数组
- 广义表
- 树结构
- 图结构
2.简单示例介绍分析面试考察点
示例1:找到丢失的数字:
- 现在你手上有n-1个数字,这些数字的范围是[1,n]且这n-1个数字中没有重复的数字。由上述条件可知:你手上的数字丢失了一个。请编写一段高效的找到该缺失数字的代码
上述题目首先给出几个思路:
- 1.先排序,然后使用二分法的方式找到(比如说这里的需求中没有描述数字本身有没有排序,我们可以先问面试官数字有没有排序)
- 2.先排序,然后使用线性的方式循环遍历去找
- 3.对[1,n]求和,然后减掉数组中的元素n-1个数字,就可以得到丢失的数字
- 4.使用计数排序,使用n个抽屉并且给每个抽屉编号,遇到一个数字就把它放到对应的抽屉中去,然后循环遍历抽屉,找出为空的就是丢失的数字
- 5.使用异或,
- 异或满足,