LeetCode 749. Contain Virus (TLE) – AlanShawn's Blog



LeetCode 749. Contain Virus (TLE) – AlanShawn's Blog

I have obviously overestimated the complexity of the problem. I thought we need to choose a contaminated area to quarantine so that the world can be saved, but it is not the case. We only need to quarantine the most dangerous area each day, which resulted in overwhelmingly complicated design of the algorithm. I tried to use generalized algorithms without modification, but it gives me an TLE error. After profiling, I find out the the problem is in connected-component finding. We do not need to find a connected-component every time. In fact, we just need to run it once and keep track of the changes of the connected component. I do not want to modify my code to let it pass, because rather than a algorithm problem, it is more of a program design problem. I think I have devised a working algorithm, which is just not fast enough, due to a more sophisticated design and the capability of fulfilling multiple purposes.


Read full article from LeetCode 749. Contain Virus (TLE) – AlanShawn's Blog


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts