永远别说永远,凡事皆有可能。
—— 《放牛班的春天》


1 Algorithm(算法题)

class Solution {
    public int hIndex(int[] citations) {
        // 使用计数排序. countMap 下标索引表示引用次数,值表示对应引用次数的文章数
        // 引用次数超过 citations.length,也视作 citations.length
        int length = citations.length;
        int[] countMap = new int[length + 1];

        // 30615 -> 010102
        for(int citation : citations) {
            countMap[Math.min(citation, length)]++;
        }

        int sum = 0;
        for(int i = length; i >= 0; i--) {
            // 引用次数大于等于 i 的文章数总和
            // 010102 -> 2 -> 2 -> 3 >= 3 return
            sum += countMap[i];
            if(sum >= i) {
                return i;
            }
        }
        return -1;
    }
}

2 Technique/Tips(分享一个小技术)

2.1 Redis 源码阅读 —— sds 结构体源码阅读

3 Share(分享我的所见所闻)

本来第 3 部分应该是“分享一个观点”,但我觉得许多时候,人在经常性地分享观点时,会趋于建议或者劝诫,类似“知识陷阱”一样。
这让我对“分享观点”这件事情有些迟疑,基于上述的原因,我将第 4 点改为了“分享我的所见所闻”,内容比较杂乱,包含一周内读过的书、看过的博客、学习的摄影知识等等。

3.1 技术文章

3.2 泛互联网文章