Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function recursiveCheck(array, valToPlace) {
  2.     let currIndex = valToPlace - 1
  3.     let nextVal = array[currIndex];
  4.     array[currIndex] = valToPlace;
  5.  
  6.     if (nextVal != undefined && nextVal != valToPlace && nextVal > 0 && nextVal <= array.length) {
  7.         recursiveCheck(array, nextVal);
  8.     }
  9. }
  10.  
  11. function linearTimeConstantSpaceReworked(array) {
  12.     for (let index = 0; index < array.length; index++) {
  13.         let val = array[index];
  14.  
  15.         if (val != undefined && val - 1 != index) {
  16.             array[index] = undefined;
  17.  
  18.             if (val > 0 && val <= array.length) {
  19.                 recursiveCheck(array, val);
  20.             }
  21.         }
  22.     }
  23.  
  24.     for (let index = 0; index < array.length; index++) {
  25.         if (array[index] == undefined) {
  26.             return index + 1;
  27.         }
  28.     }
  29.  
  30.     return array.length + 1;
  31. }
  32.  
  33.  
  34. let mainArray = [3, 4, -1, 1];
  35. console.log(linearTime(mainArray));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement