Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package com.java2novice.algos;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class DuplicateNumber {
  7.  
  8.     public int findDuplicateNumber(List<Integer> numbers){
  9.          
  10.         int highestNumber = numbers.size() - 1;
  11.         int total = getSum(numbers);
  12.         int duplicate = total - (highestNumber*(highestNumber+1)/2);
  13.         return duplicate;
  14.     }
  15.      
  16.     public int getSum(List<Integer> numbers){
  17.          
  18.         int sum = 0;
  19.         for(int num:numbers){
  20.             sum += num;
  21.         }
  22.         return sum;
  23.     }
  24.      
  25.     public static void main(String a[]){
  26.         List<Integer> numbers = new ArrayList<Integer>();
  27.         for(int i=1;i<30;i++){
  28.             numbers.add(i);
  29.         }
  30.         //add duplicate number into the list
  31.         numbers.add(10);
  32.         DuplicateNumber dn = new DuplicateNumber();
  33.         System.out.println("Duplicate Number: "+dn.findDuplicateNumber(numbers));
  34.     }
  35. }