本地 leetcode,支持断点调试

1. 关于 EPI

       EPI 是英文 Elements of Programming Interviews 的缩写,这是一本外国人写的算法书籍(介绍 / pdf 下载)。该书籍在编排上,以数据结构作为划分,每种数据结构独立一个章节,每个章节都包含数道算法题和作者的解答。

2. EPI 的优势

       相较于 leetcode 等在线刷题网站,EPI 的优势主要在于:

3. EPIJudge 使用介绍

4. elements-of-programming-interviews 使用介绍

5. 个人使用心得

$ git diff epi/Anagrams.java
diff --git a/epi_judge_java/epi/Anagrams.java b/epi_judge_java/epi/Anagrams.java
index 1edc721..c68bbf3 100644
--- a/epi_judge_java/epi/Anagrams.java
+++ b/epi_judge_java/epi/Anagrams.java
@@ -10,6 +10,7 @@ import java.util.List;
 import java.util.function.BiPredicate;
 
 public class Anagrams {
		 ……
+    /**
+     * 测试用例的编号
+     */
+    private static int num = 0;
 
     @EpiTest(testDataFile = "anagrams.tsv")
     public static List<List<String>> findAnagrams(List<String> dictionary) {
+        // 未通过的测试用例编号匹配(实际编号从 1 开始,出错时日志输出会告诉我们第几个未通过)
+        if (++num == 5) {
+            // 将断点断在下面的打印语句上
+            System.out.println();
+        }
         // TODO - you fill in here.
         // 具体的算法代码实现(省略)
       	 ……
     }
   	 ……
 }

6. 总结

       算法不是短时间可以速成的,所以有吸引力的公司为了筛选优秀人才基本都会将其作为必考项。为了不让这一关限制了我们的选择面,还是越早打通越好。

       单纯的背题效果比较一般,最好的方法还是自己手写一遍,修改 + 调试,直到验证通过。

       最后,以《卖油翁》的话做为结束:“我亦无他,唯手熟尔”。