給定乙個陣列(int a)和乙個值(elem),在原地刪除與值相同的數字,返回新陣列的長度。定義乙個大小為a.length的int a元素的順序可以改變,並且對新的陣列不會有影響。
樣例
給出乙個陣列 [0,4,4,0,0,2,4,4],和值 4
返回 4 並且4個元素的新陣列為[0,0,0,2]
依此比較陣列a中元素是否與elem不等,若是,則將其賦值給a[k++],賦值給第k給元素,用k記錄最終不相等的元素個數
返回k
public
intremoveelement(int a, int elem)
}return k;
}
這樣是錯誤的:測試用例中,不僅要返回陣列長度,還要表示新的陣列。
然而,預設是陣列a作為新的陣列
也即題目還有乙個隱含意思:新陣列用a來記錄,a的前k個元素為與elem不同的k個元素
public
intremoveelement(int a, int elem)
fast++;
}return ret;
}
使用兩個標誌位fast,slow。(fast快,在前面;slow慢,在後面)
fast在陣列a中一直往前++;
slow記錄找到的不相同的元素個數,用以賦值。
LintCode 172 刪除元素
給定乙個陣列和乙個值,在原地刪除與值相同的數字,返回新陣列的長度。元素的順序可以改變,並且對新的陣列不會有影響。樣例 給出乙個陣列 0,4,4,0,0,2,4,4 和值 4 返回 4 並且4個元素的新陣列為 0,0,0,2 class solution public param a a list o...
Lintcode 刪除元素
給定乙個陣列和乙個值,在原地刪除與值相同的數字,返回新陣列的長度。元素的順序可以改變,並且對新的陣列不會有影響。example 1 input value 0 output 0 example 2 input 0,4,4,0,0,2,4,4 value 4 output 4 explanation ...
刪除元素(LintCode)
刪除元素 給定乙個陣列和乙個值,在原地刪除與值相同的數字,返回新陣列的長度。元素的順序可以改變,並且對新的陣列不會有影響。樣例給出乙個陣列 0,4,4,0,0,2,4,4 和值 4 返回 4 並且4個元素的新陣列為 0,0,0,2 思路就是把除刪除元素外的元素移到最左邊,r是最右端非被刪除元素,可以...