1. 数据结构及算法思想
1. 数组(整数反转)
特性:
- 数组容量固定不变,需在创建数组时指定
- 使用连续的物理空间存储数据
- 可以通过下标在O(1)的时间复杂下读取数据
算法思维:
- 遍历
- 逆序
- 原地交换
- 数学思维:取模、累加
2. 单链表(两数相加)
特性:
- 数据存储不要求连续空间,不限制容量
- 数据的逻辑顺序通过指针链接次序实现
- 从链表头部依次访问后面的节点
- 链表插入数据的时间复杂度是O(1)
- 节点的next指向null, 代表链表的结尾
算法思维:
- 数学竖式
算法知识:
- 异或运算相当于不进位的加法:
a ^ b - 进位即相当于a & b的结果左移一位:
(a & b) << 1
3. 栈(删除最外层的括号)
特性:
- 仅在表尾进行插入和删除操作的线性表
- 后进后出
- 基本操作:进栈(入栈/压栈)、出栈
算法思维:
- 计数器
- 累加