Advertisement
HXXXXJ

Moving zero - change Order / non - change

Mar 26th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.96 KB | None | 0 0
  1.  
  2.  
  3. //this is change the number order
  4.  
  5. func moveZero(_ arr: inout [Int]){
  6.     guard arr.count > 0  else {
  7.         return
  8.     }
  9.     var zero = arr.count - 1
  10.     var number = 0
  11.     while number < arr.count && number < zero{
  12.         if arr[number] == 0{
  13.             arr.swapAt(zero, number)
  14.             zero -= 1
  15.         }else{
  16.             number += 1
  17.         }
  18.     }
  19. }
  20.  
  21. var arr = [1,0,3,4,0,5,0,0,7]
  22. moveZero(&arr)
  23.  
  24. print(arr)
  25.  
  26. // this is no changing the order
  27. func moveZero2(_ arr: inout [Int]){
  28.     guard arr.count > 0  else {
  29.         return
  30.     }
  31.     var number = 0
  32.     var runner = 0
  33.    
  34.     while runner < arr.count{
  35.         if arr[runner] != 0{
  36.             arr.swapAt(runner, number)
  37.             runner += 1
  38.             number += 1
  39.         }else{
  40.             runner += 1
  41.         }
  42.     }
  43.     while number < arr.count{
  44.         arr[number] = 0
  45.         number += 1
  46.     }
  47. }
  48.  
  49.  
  50. var arr2 = [1,0,3,4,0,5,0,0,7]
  51. moveZero2(&arr2)
  52.  
  53. print(arr2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement