升维 空间换时间

跳表
image.png

image.png

image.png

image.png

移动零

  1. //非0项覆盖到数组前头
  2. //j 是非0 的坑位
  3. var moveZeroes = function (nums) {
  4. let j = 0;
  5. for (let i = 0; i < nums.length; i++) {
  6. if (nums[i] != 0) {
  7. //遇到 非 0 项
  8. nums[j] = nums[i]; // 覆盖到j上
  9. j++; //j后移
  10. }
  11. }
  12. for (let i = j; i < nums.length; i++) {
  13. //剩下的位置赋为0
  14. nums[i] = 0;
  15. }
  16. return nums;
  17. };
  18. console.log(moveZeroes([0, 1, 0, 3, 12]));