颜林林的“左耳听风ARTS”打卡记录

ARTS第三十八周(2020年6月8日~14日)

2020-06-17

Algorithm

LeetCode题库

编号 难度 题目 我的解答 执行用时 内存消耗 排名 备注
262 困难 行程和用户 200617-1.sql 288 ms 0 MB 43.06%
263 简单 丑数 200617-1.cpp 0 ms 5.8 MB 100.00%
264 中等 丑数 II 200617-1.cpp 356 ms 29.5 MB 21.18%

Review

1. 在关系型数据库中处理级联类型

分享链接:How to Manipulate Hierarchical Information in Flat Relational Database Tables

表现为树形结构的级联类型,在数据库中,常见的实现方式是设置自关联的主键。

从工程角度,为了确保数据操作效率,通常还会加入一些辅助字段,以及相应的代码(可能是数据库底层实现,可能是存储过程)来帮助查询、插入、更新、删除的操作。

本文以SQL server为例,展示了这方面背后的逻辑。

Tip

1. C++中的区间类型

分享链接:C++ code samples before and after Ranges

区间类型有很多常见算法的封装,能够提供更便利的用法。下面举例展示下遍历枚举每个元素的操作。

常规STL使用:

1
2
3
std::for_each(
   std::crbegin(v), std::crend(v),
   print_elem);

使用range类型:

1
2
3
rs::for_each(
   std::crbegin(v), std::crend(v),
   print_elem);

或(倒序枚举):

1
2
3
4
for (auto const i : v | rv::reverse)
{
   print_elem(i);
};

Share

1. 8086的高清照片

分享链接:A look at the die of the 8086 processor

42年前问世的8086,开启了x86架构的历史。原来学习汇编语言,就是从它的指令集开始的。如今看其实物照片,依然会感慨其精密。