0. Introduction

  • 解題不建議用recursive,會有stack overflow的問題,工程實作上不常用。若組數沒有很大則可以使用

  • 高頻題: Binary Tree, Linked list, Graph and search

    Tiem complexity 時間複雜度

  • O(1) 极少

  • O(logn) 几乎都是二分法

  • O(√n) 几乎是分解质因数

  • O(n) 高频

  • O(nlogn) 一般都可能要排序

  • O(n2) 数组,枚举,动态规划

  • O(n3) 数组,枚举,动态规划

  • O(2n) 与组合有关的搜索

  • O(n!) 与排列有关的搜索

Test code

多用corner case, null, {}, 長度1, 長度0, 全是1, 全是0

Ask tips

  • 是不是BST/binary tree?

  • 有沒有parent point?

  • 如果給兩個root返回什麼?

  • 如果有node不存在,返回什麼?

  • e.g. find intersection of 2 linkedlist

    • 有沒有環?

    • 一定有intersection?

    • linkedlist單向? 雙向?

    • 如果一個null一個非null怎麼return?

    • 兩個null怎麼return?

問題複雜先寫API

  • BFS_helper/ DFS_helper

Last updated