C++每周一篇
ASCII码
A 65 a 97 '0' 48 空格 32
进制问题
二进制 位运算
&与 同1为1,其他为0
|或 有1就是1
~非 取反
^异或 相同为0,不同为1
大写字母^空格=对应的小写
深度优先搜索 DFS 递归---栈
广度优先搜索 BFS 队列
动态规划 DP
栈 先进后出 stack<int>s;
队列 先进先出 单向队列 queue<int>q1 双向队列 deque<int>q2;
链表 在内存中,元素可以连续也可以不连续
时间复杂度
1.排序的时间复杂度(要背)
2.现场计算的 O(log n) : 乘2,除2,二分,折半
for(int i=1;i<=99999;i++){
} O(1)
for(int i=1;i<=n;i++){
} O(n)
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
}
} O(n^2)
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
}
} O(n^2)
排序
三个必学排序
冒泡排序 相邻 比较 交换
选择排序 找最值 比较 交换
插入排序 倒序往前比较,一直比到比不了的时候
进制转换(技巧)
八进制转二进制 取一分三
十六进制转二进制 取一分四
二进制转八进制 取三合一
二进制转十六进制 取四合一
逻辑表达式
与 ∧ &&
或 ∨ ||
取反 ~ !
二叉树
叶子结点:没有孩子的结点
完全二叉树:层次遍历时,没有断点的
满二叉树:有几层就画满几层
前序遍历 前缀 根左右 确定先读哪个结点
中序遍历 中缀 左根右 确定了树的结点的位置
后序遍历 后缀 左右根 确定先读哪个结点
根据
前缀,中缀写出后缀
后缀,中缀写出前缀
特例
(1+1)*2写出它的前缀形式 * + 1 1 2
排列组合 杨辉三角