1. 程式人生 > 其它 >Redis從0到精通--Set

Redis從0到精通--Set

https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/

思路很簡單,但是我不明白為什麼不能使用位運算,難道是值交換和地址交換?

錯誤程式碼

class Solution {
    public int[] exchange(int[] nums) {
    int len = nums.length;
    //if(len == 0) return -1;
    int l = 0, r = len - 1,tem;
    while(l < r){
        while(l < r && (nums[l] & 1) == 1) l++;
        while(l < r && (nums[r] & 1) == 0) r--;
        nums[l] = nums[l]^nums[r];
        nums[r] = nums[l]^nums[r];
        nums[l] = nums[l]^nums[r];
    }
    return nums;
    }
}

正解程式碼

class Solution {
    public int[] exchange(int[] nums) {
    int len = nums.length;
    //if(len == 0) return -1;
    int l = 0, r = len - 1,tem;
    while(l < r){
        while(l < r && (nums[l] & 1) == 1) l++;
        while(l < r && (nums[r] & 1) == 0) r--;
        tem = nums[l];
        nums[l] = nums[r];
        nums[r] = tem;
    }
    return nums;
    }
}