這題看起來像是用 Heap,類似 Ugly Number II ,考慮用 pointer,且因為這題只需要可以被 a,b,c 整除,不需要因數完全只能是 a,b,c的倍數,因此 pointer 不用當成 array index 來用。
但是用 Heap 會 TLE。
Code
Heap 版本:
Binary search 版本:
定義 F(N) 為包含 N 以下可被 a,b,c 整除的數字個數:
F(N) = a + b + c - a ∩ c - a ∩ b - b ∩ c + a ∩ b ∩ c F(N) = N/a + N/b + N/c - N/lcm(a, c) - N/lcm(a, b) - N/lcm(b, c) + N/lcm(a, b, c) (lcm = least common multiple)