這題我沒有細看要求,我一直按照無序算,寫了兩個循環,運行經過告終果也對,就是提交不上去,後來想到辦法了不過沒有實驗,最後一位單獨處理就行,應該是對的,可是這道題應該通不過,由於每一個元素只能出現一次。數組
------------------------------------------------------------------rem
我本身寫的,不正確,這個結果是[2,1],若是改爲nums[tag++] = nums[i - 1],結果是[1,1],就是數組長度的問題,這個沒反應過來呢,哈哈。io
class Solution {
public int removeDuplicates(int[] nums) {
int tag = 0;
if(nums.length == 0) return 0;
for(int i = 1;i < nums.length;i++){
if(nums[i - 1] != nums[i]){
nums[tag++] = nums[i];
}
}
return tag + 1;
}
} class
這是看了答案之後修改的,這個跟個人思路有一點點相似,可是差異仍是挺大的,雖然代碼差異比較小,可是思路區別大。循環
1.tag默認爲第一個元素,與第二個元素進行比較,若是不相等,那麼把與tag比較的元素,賦值給index=++tag的位置,tag永遠是不重複下標的最後一位,把不重複數據添加到++tag的位置,這個思路很重要,我怎麼沒想出來呢,想出來的跟這個差異比較大。不過也有點進步了,我本身也能寫出來點了,加油,量變產出質變數據
class Solution {
public int removeDuplicates(int[] nums) {
int tag = 0;
if(nums.length == 0) return 0;
for(int i = 1;i < nums.length;i++){
if(nums[tag] != nums[i]){
nums[++tag] = nums[i];
}
}
return ++tag;
}
} return