Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで配列から特定の値をすべて削除する方法

問題の概要

配列 nums と値 val が与えられたとき、val と等しいすべての要素を配列内でその場で削除し、残りの要素数(新しい長さ)を求めます。

例えば、入力が [0,1,5,5,3,0,4,5]val5 の場合、値 5 は3つ含まれているため、削除後の長さは 5 になります。

解決のアプローチ

この問題は、書き込み位置を示すカウンタを1つ用意することで、追加のメモリを使わずに解決できます。手順は以下の通りです。

  • カウント変数 count を 0 で初期化します。
  • 配列 nums の各インデックス i に対して次の処理を繰り返します。
  • nums[i]val と等しくない場合は、nums[count]nums[i] を代入し、count を 1 増やします。
  • ループ終了後、count を返します。

この方法では、val 以外の要素だけを配列の先頭側へ順番に詰めていくため、結果として先頭から count 個分の要素が「削除後の配列」となります。

実装例

以下のコードで実際の動作を確認してみましょう。

class Solution:
    def removeElement(self, nums, val):
        count = 0
        for i in range(len(nums)):
            if nums[i] != val:
                nums[count] = nums[i]
                count += 1
        return count

ob = Solution()
print(ob.removeElement([0,1,5,5,3,0,4,5], 5))

入力

[0,1,5,5,3,0,4,5], 5

出力

5

計算量

時間計算量は O(n)(n は配列の長さ)、空間計算量は O(1) です。配列を一度走査するだけで済み、余分なメモリも不要なため、非常に効率的な手法と言えます。

  1. JavaScriptでIDを指定して要素を削除する方法

    JavaScriptでIDを指定して要素を削除するIDを使ってHTML要素を削除するには、remove()メソッドを使用します。このメソッドは、対象のDOM要素をドキュメントから直接取り除くことができる、最もシンプルで直感的な方法です。コード例以下は実際のサンプルコードです。<!DOCTYPE html> <html lang=ja> <head>    <meta charset=UTF-8>    <meta name=viewport content=width=device-width, in

  2. Python入門:リストから全要素がNoneのタプルを削除する方法

    Pythonでは、リスト内包表記とall()関数を組み合わせることで、すべての要素がNoneであるタプルをリストから簡単に削除できます。この記事では、その具体的な実装方法をコード例とともに解説します。 基本的な考え方 ポイントは次の2つです。 all()関数:イテラブル内のすべての要素が条件を満たす場合にTrueを返します。 not演算子:all()の結果を反転させることで、「すべてがNoneではない」タプルだけを残せます。 サンプルコード my_tuple = [(None, 12), (None, None), (33, 54), (32, 13), (None, )] print(