利用background-image實現線性漸變
阿新 • • 發佈:2020-12-15
題目:給你一個未排序的整數陣列,請你找出其中沒有出現的最小的正整數。
示例1:
輸入: [1,2,0] 輸出: 3
示例2:
輸入: [3,4,-1,1] 輸出: 2
示例3:
輸入: [7,8,9,11,12] 輸出: 1
思路:
//把小於nums.length的值放到與下標對應,結束後 ,有以下幾種情況:
//1.從下標1開始位移,遇到第一個不同的下標與值不同的元素,即為要求元素;
//2.走到底,說明正數1-nums.lemgth-1都存在,此時判斷nums[0]是否為nums.lemgth,是則答案為nums.lemgth+1,不是則為nums.lemgth
程式碼:
classSolution{ publicintfirstMissingPositive(int[]nums){ //特殊情況特殊處理 if(nums.length==0||nums==null){return1;} if(nums.length==1){ if(nums[0]<=0){return1;} if(nums[0]==1){return2;} else{return1;} } for(inti=0;i<nums.length;){ if(nums[i]<nums.length&&nums[i]>=0){ if( nums[i]!=i&&nums[i]!=nums[nums[i]] ){swap(nums,i,nums[i]);continue; }//把下標和值相匹配同時考慮元素存在重複情況,當下標與值不匹配,但值所在的下標與這個下標內的值匹配不用交換位置 } i++; } for(inti=1;i<nums.length;i++){ if(nums[i]!=i){returni;}//迴圈一次,下標與值不同的第一個元素就是缺失的數字 } if(nums[0]==nums.length){returnnums.length+1;} //迴圈退出,考慮下標0內元素 returnnums.length; }publicstaticvoidswap(int[]nums,inti,intj){ inttemp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } }