这里记录了我的Google Kick Start刷题历程,对于每一道题目我都会做相关的笔记,可以在题目路径下找到。以下是题目的关键词的汇总。
*号表示大数据集尚未解决。
数字,数位,贪心构造,分析能力
动态规划,二分搜索优化
字符串问题,频率数组,哈希,复杂度优化
数字,数位,分析能力,找规律
二进制字符串,动态规划,状态压缩dp,字典序
平面几何,二维累积数组
图相关,深度优先遍历,广度优先遍历,无向图找环
回溯法,图相关,平面几何
数学相关(等比数列求和,费马小定理),快速幂,大数取模,乘法逆元
双指针法,滑动窗口,平衡二叉搜索树,STL multiset
平面几何,坐标点的排序
二维累积数组,最大公约数,子网格遍历
滑动窗口
二维网格,多源广度优先搜索,二分搜索,曼哈顿距离
待解决
回文,字符出现频率,频率前缀和
动态规划,0-1背包问题
二维网格,路径压缩,并查集
单调栈,二维网格
异或的性质,STL set
队列
post-office-location problem,堆
图,最小生成树, Prim算法,并查集
排序,前缀和,二分查找
1.在读入数据时如果使用了int类型存储,尽管数据本身没有超范围,但是在进行乘法计算时却可能会产生数值溢出。这在以后必须要考虑到。
2.使用全局定义的数组来存储数据时,要记得在每个case开始时用memset函数初始化一下。否则会产生很隐蔽的bug。
3.函数的局部变量不能定义得过大,否则会导致栈溢出。因为局部变量存在在堆栈空间,其大小一般只有4M或者8M。