免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/huanglinxiao/article/details/91527815
配列NUMSと値valを考えると、あなたはすべて同じ値valを削除するために要素を配置する必要があり、除去後の配列の長さを返します。
配列のための余分なスペースを使用しないでください、あなたは代わりに入力配列を変更し、使用のO(1)余分なスペースの条件の下で完了しなければなりません。
要素の順序を変更してもよいです。あなたは、新しい配列の長さの後ろの要素を超えて検討する必要がありません。
例1:
所与のNUMS = [3,2,2,3]、ヴァル= 3、
関数は、2の新しい長さを返す必要がありますし、最初の2つの要素のNUMSは2です。
あなたは、新しい配列の長さの後ろの要素を超えて検討する必要がありません。
例2:
NUMS = [0,1,2,2,3,0,4,2]、ヴァル= 2、所与
新しい関数は、長さ5を返す必要があり、最初の5つの要素NUMSは0、1、3、0、4です。
これらの5つの要素は任意の順序であることに注意してください。
あなたは、新しい配列の長さの後ろの要素を超えて検討する必要がありません。
ソリューション:
func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
guard nums.count > 0 else {
return 0
}
for (index,value) in nums.enumerated().reversed() {
if(value == val){
nums.remove(at: index)
}
}
return nums.count;
}