微信釋出視訊號直播常見違規內容概覽:詳細界定不雅行為,提供著裝規範
阿新 • • 發佈:2021-06-03
學習交換元素的另一種寫法
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]; } }