# 引言
作为一个社会人, 感觉自己在死瘦宅的路上愈行愈远, 无法自拔~ 也越来越拖延(懒癌晚期)
为了缓解下这种情况, 决定工作学习之余没事刷刷题, 而 LeetCode 就是一个不错的选择(正好也用新入坑的 GO 语言写写代码试试水)~
谨以此文记录下 LeetCode 的刷题之路, 也算是作为一个个人题解 Orz~

# 技巧处理
# C++ 输入输出加速
在刷LeetCode的时候, 习惯性看看最优时间的大佬们的解法, 偶然发现有些题同样的方法别人运行时间就要低上不少, 然后发现这些提交一般都有如下这个 Lambda 表达式。
static const auto __________ = []()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
return nullptr;
}();仔细看了看 LeetCode 对于使用 C++ 提交的人, 输入输出默认使用的 C++ 的 io, 而不是 C 的, 上面 Lambda 捕获, 则可以用来解除 C++ 为了兼容 C 而采取的缓存同步机制, 提升 cin, cout 的速度
解惑 ios::sync_with_stdio(false)
因为 C++ 中的std::cin和std::cout为了兼容 C, 保证在代码中同时出现 std::cin 和 scanf 或 std::cout 和 printf 时输出不发生混乱, 所以 C++ 用一个流缓冲区来同步 C 的标准流。通过 std::ios_base::sync_with_stdio 函数可以解除这种同步, 让 std::cin 和 std::cout 不再经过缓冲区, 自然就节省了许多时间。
解惑 cin.tie(nullptr)
std::cin默认是与 std::cout 绑定的, 所以每次操作的时候(也就是调用 << 或者 >>)都要刷新(调用flush), 这样增加了IO的负担, 通过 tie(nullptr) 来解除 std::cin 和 std::cout 之间的绑定, 来降低 IO 的负担使效率提升。
# 题解汇总
沉潜深度源自始终如一的专注。人的生命是有限的, 精力是有限的, 只有专注才能将人的力量发挥到极致。
| 题解链接 | 题目名称 | 难度 |
|---|---|---|
| 0001: 传送门 Click Here! | Two Sum | Easy |
| 0002: 传送门 Click Here! | Add Two Numbers | Medium |
| 0003: 传送门 Click Here! | Longest Substring Without Repeating Characters | Medium |
| 0004: 传送门 Click Here! | Median of Two Sorted Arrays | Hard |
| 0005: 传送门 Click Here! | Longest Palindromic Substring | Medium |
| 0006: 传送门 Click Here! | ZigZag Conversion | Medium |
| 0007: 传送门 Click Here! | Reverse Integer | Easy |
| 0008: 传送门 Click Here! | String to Integer (atoi) | Medium |
| 0009: 传送门 Click Here! | Palindrome Number | Easy |
| 0010: 传送门 Click Here! | Regular Expression Matching | Hard |
| 0011: 传送门 Click Here! | Container With Most Water | Medium |
| 0012: 传送门 Click Here! | Integer to Roman | Medium |
| 0013: 传送门 Click Here! | Roman to Integer | Easy |
| 0014: 传送门 Click Here! | Longest Common Prefix | Easy |
| 0015: 传送门 Click Here! | 3Sum | Medium |
| 0016: 传送门 Click Here! | 3Sum Closest | Medium |
| 0017: 传送门 Click Here! | Letter Combinations of a Phone Number | Medium |
| 0018: 传送门 Click Here! | 4Sum | Medium |
| 0019: 传送门 Click Here! | Remove Nth Node From End of List | Medium |
| 0020: 传送门 Click Here! | Valid Parentheses | Easy |
| 0021: 传送门 Click Here! | Merge Two Sorted Lists | Easy |
| 0022: 传送门 Click Here! | Generate Parentheses | Medium |
| 0023: 传送门 Click Here! | Merge k Sorted Lists | Hard |
| 0024: 传送门 Click Here! | Swap Nodes in Pairs | Medium |
| 0025: 传送门 Click Here! | Reverse Nodes in k-Group | Hard |
| 0026: 传送门 Click Here! | Remove Duplicates from Sorted Array | Easy |
| 0027: 传送门 Click Here! | Remove Element | Easy |
| 0028: 传送门 Click Here! | Implement strStr() | Easy |
| 0029: 传送门 Click Here! | Divide Two Integers | Medium |
| 0030: 传送门 Click Here! | Substring with Concatenation of All Words | Hard |
| 0031: 传送门 Click Here! | Next Permutation | Easy |
| 0032: 传送门 Click Here! | Longest Valid Parentheses | Hard |

有什么想法,欢迎留下评论。