diff --git a/data_structure/stack_queue.md b/data_structure/stack_queue.md index 4a33d979..cfcbaf2b 100644 --- a/data_structure/stack_queue.md +++ b/data_structure/stack_queue.md @@ -484,7 +484,9 @@ vector> levelOrder(TreeNode *root) { /* * 从0出发,而不是从1出发! * 把所有为0的节点压入队列,并进行广度优先遍历 - * 每次向外扩散一格 + * 并不是一个点往外不停扩散,再换下一个点(那是深度优先) + * 每次向外扩散一格,距离+1,并直接出栈! + * 剩下的交给外圈的继续扩散 */ vector> updateMatrix(vector>& matrix) { int row = matrix.size(), column = matrix[0].size(); diff --git a/punch_in/learned_along_the_journey.md b/punch_in/learned_along_the_journey.md index a234ff8a..60b2f22c 100644 --- a/punch_in/learned_along_the_journey.md +++ b/punch_in/learned_along_the_journey.md @@ -20,6 +20,10 @@ vector ret{n + 1, 1}; // 初始化为n + 1, 1两个元素! ### 普通数组也可以使用range for进行遍历 +### 越界? +mid * mid < x越界 +那就改写成mid < x / mid + ### push_back vs emplace_back [C++ difference between emplace_back and push_back function ](http://candcplusplus.com/c-difference-between-emplace_back-and-push_back-function) @@ -38,6 +42,12 @@ push_back只能接受对象实例或者单参数版本的构造函数的参数 * emplace_back 不会创建临时对象,而是直接在vector中创建对象。避免了创建不必要的临时对象 +### decomposition declaration +C++17支持如下语法: +```c++ +queue> queue; +auto [i, j] = queue.front(); +``` ## JetBrians产品中关于GitHub的fork、pull request使用 [官方文档](https://www.jetbrains.com/help/idea/contribute-to-projects.html)