Product of All Other Numbers in Array - Coding in A Smart Way



Product of All Other Numbers in Array - Coding in A Smart Way

Written by truongkhanh on Problem: Product of All Other Numbers in Array Given an array A of integer number, compute array B such that B[i] = ∏A[j] where j  ≠  i. For example, if A = [2, 8, 7, 5], then B = [8x7x5=280, 2x7x5=70, 2x8x5=80, 2x8x7=112]. What if you can not use division (/) operator. Discussion A naive solution is that we compute B[i] separately. Given any i, we loop through the array A and compute ∏A[j] where j  ≠  i. Then the complexity is O(N) where N is the number of array A. Therefore, it takes O(N2) to compute B. For example, B[0] = 8x7x5, B[1] = 2x7x5, etc. We note that there are many redundant computing, for example 7×5. Actually, we can compute B[i] more efficient by using formula B[i] = P / A[i] where P is the product of all elements in A. Thus, we just compute P once and use for all computing. The complexity is thus O(N). public static int[] productOfOtherNumbers(int [] A) { int product = 1; for (int a : A) { product *= a; } int[] result = new int[A.length];

Read full article from Product of All Other Numbers in Array - Coding in A Smart Way


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