1. 程式人生 > 資訊 >微信釋出視訊號直播常見違規內容概覽:詳細界定不雅行為,提供著裝規範

微信釋出視訊號直播常見違規內容概覽:詳細界定不雅行為,提供著裝規範

學習交換元素的另一種寫法

void swap(int[] nums,int x,int y){
        if(x==y)return;//重要,沒有這一句當x==y時兩個都變成0
        nums[x]=nums[x]^nums[y];
        nums[y]=nums[x]^nums[y];
        nums[x]=nums[x]^nums[y];
    }

本題解:
小於2的放在[0,pos2]的位置
在上面基礎上,小於1的放在[0,pos1]的位置
也可以說:
小於2的放在(pos1,pos2]的位置

class Solution {
    public void sortColors(int[] nums) {
        
        int pos2=-1;
        int pos1=-1;
        for(int i=0;i<nums.length;i++){
              if(nums[i]<2){
                  pos2++;
                  swap(nums,pos2,i);
                  if(nums[pos2]<1){
                      pos1++;
                      swap(nums,pos2,pos1);
                  }
              }
        }

    }
    void swap(int[] nums,int x,int y){
        if(x==y)return;//重要,沒有這一句兩個都變成0
        nums[x]=nums[x]^nums[y];
        nums[y]=nums[x]^nums[y];
        nums[x]=nums[x]^nums[y];
    }
}