[关闭]
@lizlalala 2016-10-19T14:25:22.000000Z 字数 393 阅读 1155

leetcode注意事项

未分类


  1. while循环中需要保证,i,j始终在数组内。特别是对于之前变更了i的,要加判断
  2. 数组交换时也需要注意这一点。
    比如

    1. var nextPermutation = function(nums) {
    2. var i=nums.length-1,j = i;
    3. //降序排列的数组,左边一个数字即为要更改的部分。
    4. while(nums[i-1]>=nums[i]) i--;
    5. var baseIndex = i-1;
    6. while(i<j && i>=0){ //注意判断1
    7. swap.call(nums,i,j);
    8. i++;
    9. j--;
    10. }
    11. if(baseIndex>=0){ //注意判断2
    12. i= baseIndex+1;
    13. while(nums[i]<=nums[baseIndex])
    14. i++;
    15. swap.call(nums,i,baseIndex);
    16. }
    17. };
  3. 数组排列:如果已经排序好,左右夹逼交换即可,终止条件为

    1. while(i<j)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注