任務我結束,刷題開始,26. Remove Duplicates from Sorted Array

這題我沒有細看要求,我一直按照無序算,寫了兩個循環,運行經過告終果也對,就是提交不上去,後來想到辦法了不過沒有實驗,最後一位單獨處理就行,應該是對的,可是這道題應該通不過,由於每一個元素只能出現一次。數組

------------------------------------------------------------------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

相關文章
相關標籤/搜索