Check pairs divisible by K - PrismoSkills



Check pairs divisible by K - PrismoSkills

Problem: Given an array having even number of integers. Find if the array has N / 2 pairs of integers such that each pair is divisible by a given number k. Example: A normal approach would be to try all the pairs possible and see if the array holds the above property. However, that would be a very costly approach in terms of efficiency and an O(n) solution is possible for this problem. Code: public class CheckPairDivisibility { public static void main(String[] args) { boolean isPairs = checkPairs (new int []{12, 30, 20, 22}, 6); System.out.println(isPairs); } static boolean checkPairs(int nums[], int k) { // Debug prints System.out.println("k = " + k); printArray (nums, "input "); // initialize counts of modulus int modulusCounts[] = new int[k]; for(int i = 0; i < k; i++) modulusCounts[i] = 0; // For each number in the array, calculate // modulus and update relevant count for (int num: nums) modulusCounts[num %k]++; if (modulusCounts[0] % 2 !

Read full article from Check pairs divisible by K - PrismoSkills


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