Guest User

Untitled

a guest
Nov 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. // Input: array of integers, where:
  2. // The integers are in the range 1..n
  3. // The array has a length of n+1
  4. // Output: integer that appears more than once, if multiple duplicates, return one of them
  5.  
  6.  
  7. // O(n) time, O(n) space:
  8. function findDuplicate(arr) {
  9. var numbersSeen = new Set();
  10. for (var i = 0; i < arr.length; i++) {
  11. var number = arr[i];
  12. if (numbersSeen.has(number)) {
  13. return number;
  14. } else {
  15. numbersSeen.add(number);
  16. }
  17. }
  18. }
  19.  
  20. // O(n^2) time, O(1) space (nested loop)
  21. function findDuplicate(arr) {
  22. for (var i = 1; i < arr.length; i++) {
  23. var hasBeenSeen = false;
  24. for (var j = 0; j < arr.length; j++) {
  25. var needle = arr[i];
  26. var number = arr[j];
  27. console.log(i, arr[needle], number)
  28. if (number === needle) {
  29. if (hasBeenSeen) {
  30. return number;
  31. } else {
  32. hasBeenSeen = true;
  33. }
  34. }
  35. }
  36. }
  37. }
Add Comment
Please, Sign In to add comment