BY Blog

とことんまで戦う

leetcode192 统计词频

leetcode192 Word Frequency

前言 博客好久没更新了,10月的末尾来多水一篇。不能用go了,呵呵 正文 问题来源 本问题来自leetcode上的192题。 问题描述 写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写字母组成。 单词间由一个或多个空格字符分隔。 示例 假设 ...

leetcode102 电话号码的字母组合

leetcode102 Binary Tree Level Order Traversal

前言 博客好久没更新了,10月的末尾来水一篇。 正文 问题来源 本问题来自leetcode上的102题。 问题描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3]...

分组算法优化总结

Grouping algorithm optimization summary

前言 以前写算法绝大多数情况是为了考试,写出来的代码通常仅仅只是为了可用性,很多细节都没有考虑。而数据量达到一定数量集时,对算法的效率和资源开销需要重点考虑。 正文 问题来源 公司代码中有部分是关于将具有相关属性的数据放在同一个集合内,以便更好的计算。 问题简要描述 一条记录中具有三个关键非常重要属性,busiId(long),servId(long),type(int),而其中...

分组算法优化总结

Grouping algorithm optimization summary

前言 以前写算法绝大多数情况是为了考试,写出来的代码通常仅仅只是为了可用性,很多细节都没有考虑。而数据量达到一定数量集时,对算法的效率和资源开销需要重点考虑。 正文 问题来源 公司代码中有部分是关于将具有相关属性的数据放在同一个集合内,以便更好的计算。 问题简要描述 一条记录中具有三个关键非常重要属性,busiId(long),servId(long),type(int),而其中...

并查集

union-find sets

前言 并查集并不算难的问题,是个很常见很基础的问题,一直都没有好好思考这个问题。 正文 问题来源 在看友人博客的时候看到这么一个问题,杭电OJ 1856题。后来思考到原先的分组项目中也适合这个场景,所以要好好学习学习。 问题简要描述 朋友在一个集合,朋友的朋友也是朋友,求元素最多的集合的元素个数。 分析与代码 并查集 英文:Disjoint Set,即“不相交集合” 将编...

import static和import的区别

the difference between import static and import

前言 现在Java 11已经发布了,可是Java 1.5引入的特性都没见过。真是有点out了。 正文 问题来源 在看quartz示例代码的时候看到import static,瞬间觉得自己是不是不会用Java了。 import static import static静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import com…..ClassName;而静态导入是...

母函数和排列组合

generating function and permutation&combination

前言 出来混的总是要还的 正文 问题来源 看博客的时候看到的,是个基础的算法,本应该早点掌握的。 问题描述 在谈论母函数问题之前,我们先看一个简单的问题描述:假如有两组数据(A,B)和(C,D),每组中选出一个构成一个组合,总共有几种选法?很显然总共有4种选法:AC,AD,BC,BD。而且很容易联想到这个式子(A+B)(C+D)=AC+AD+BC+BD。式子中的几个乘积项就是上面...

同步 异步 阻塞 非阻塞

Synchronous Asynchronous Blocking Nonblocking

前言 对待学习不能以糊弄的态度 正文 问题来源 同学总考我这个概念,总是自己糊弄自己就过去。理解的总是有偏差。 前提概念 类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。 Program Error strapped errors。导致程序终止执行,如除0,Java中数组越界访问 untrapped errors...

同步 异步 阻塞 非阻塞

Synchronous Asynchronous Blocking Nonblocking

前言 对待学习不能以糊弄的态度 正文 问题来源 同学总考我这个概念,总是自己糊弄自己就过去。理解的总是有偏差。 本质 同步与异步是关于指令执行顺序的。 阻塞非阻塞是关于线程与进程的。 两者本身并没有必然的关联系。 同步与异步 同步是指代码调用IO操作时,必须等待IO操作完成才返回的调用方式。 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回...

母函数和排列组合

generating function and permutation&combination

前言 出来混的总是要还的 正文 问题来源 看博客的时候看到的,是个基础的算法,本应该早点掌握的。 问题描述 在谈论母函数问题之前,我们先看一个简单的问题描述:假如有两组数据(A,B)和(C,D),每组中选出一个构成一个组合,总共有几种选法?很显然总共有4种选法:AC,AD,BC,BD。而且很容易联想到这个式子(A+B)(C+D)=AC+AD+BC+BD。式子中的几个乘积项就是上面...