LeetCode: Rotate Array Solution
Stale solution might be time-limit exceeded somedayApproach: Pop and Unshift
Note: this solution got TLE after a recheck in Sep 13th 2021
Implementation
1var rotate = function (nums, k) {2 while (k--) {3 let temp = nums.pop()4 nums.unshift(temp)5 }6}
Approach: Reverse
1nums: 1 2 3 4 5 6 72k: 334first reverse:5 (7 6 5 4 3 2 1)6second reverse:7 (5 6 7) 4 3 2 18third reverse:9 5 6 7 (1 2 3 4)
Implementation
1var rotate = function (nums, k) {2 const rangedReverse = arr => (start, end) => {3 while (start <= end) {4 const temp = arr[start]5 arr[start] = arr[end]6 arr[end] = temp7 start++8 end--9 }10 }1112 const n = nums.length13 k %= n1415 rangedReverse(nums)(0, n - 1)16 rangedReverse(nums)(0, k - 1)17 rangedReverse(nums)(k, n - 1)18}
Comments
Loading comments...
Tags
leetcode
array
two pointers
Apply and earn a $2,500 bonus once you're hired on your first job!
Clients from the Fortune 500 to Silicon Valley startups
Choose your own rate, get paid on time
From hourly, part-time, to full-time positions
Flexible remote working environment
A lot of open JavaScript jobs!!
Fact corner: Referred talent are 5x more likely to pass the Toptal screening process than the average applicant.
Still hesitate? Read HoningJS author's guide on dealing with Toptal interview process.