bool?containsDuplicate(int*?nums,?int?numsSize,int?index=0)?
{
//不要使用==1來判斷,如果數組長度為0呢? //另外要在循環處理前先預判,不要在循環體內判斷,否則浪費CPU時間 if(numsSize<2)return?false; //檢查索引(目標元素)是否為最後壹個元素,是則任務結束,返回false if(index==(numsSize-1))return?false; //從目標元素下壹個元素開始遍歷? for(int?i=index+1;i<numsSize;i++) { //判斷目標元素是否與i索引所指的元素相等,相等則返回true if?(nums[index]==nums[i])return?true;? } //掃描完所有元素後進行遞歸,將index遞增,切換目標元素進壹步檢查? return?containsDuplicate(nums,numsSize,index+1);}
好幾處錯誤,我就不壹壹寫了,基本就是思路混亂,判斷壹個數組中元素重復值的基本思路就是壹個壹個取出值,並與剩余元素比較,壹旦想等就返回真,已經比較過的元素不需要重復比較,然後妳看看我的代碼體會下。