Open lewenweijia opened 5 years ago
核心思想: 对撞指针, 数组项值互换
while 版本
while
function reverse(nums) { let i = 0; let j = nums.length - 1; while (i < nums.length) { // boundary check if (i >= j) break; [nums[i], nums[j]] = [nums[j], nums[i]]; i++; j--; } return nums; }
// reverse([]) -> [] // reverse([1,2,3,4]) -> [4,3,2,1]
2. `for` 版本 ```js function reverse(nums) { for (let i = 0, j = nums.length - 1; i < nums.length; i++, j--) { if (i >= j) break; [nums[i], nums[j]] = [nums[j], nums[i]]; } } return nums; }
function reverse(arr) { let low = 0; let high = arr.length - 1; while (low < high) { [arr[low], arr[high]] = [arr[high], arr[low]]; low++; high--; } return arr; }
核心思想: 对撞指针, 数组项值互换
while
版本// reverse([]) -> [] // reverse([1,2,3,4]) -> [4,3,2,1]