ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptでモードを見つける方法

JavaScriptでモードを見つける方法

藏色散人
藏色散人オリジナル
2022-01-19 15:12:042423ブラウズ

JavaScript でモードを見つける方法: 1. 新しい配列を作成します; 2. 各値の出現数を数えます; 3. 配列を走査してモードを見つけます。

JavaScriptでモードを見つける方法

この記事の動作環境: Windows 7 システム、JavaScript バージョン 1.8.5、DELL G3 コンピューター

検索方法JavaScriptのモード?

LeetCode のモードの検出 - JavaScript 実装

モードの取得

サイズ n の配列が与えられた場合、モードを見つけます。モードは、配列内に ⌊ n/2 ⌋ より多く出現する要素を指します。

配列は空ではなく、特定の配列には常にモードがあると想定できます。

例 1:

入力: [3,2,3]
出力: 3

例 2:

入力: [2,2,1,1,1,2,2]
出力: 2

##私の考え:新しい配列、各値の出現数を数え、配列を走査してモードを見つけます。

const majorityElement = function (nums) {
    let arry = []
    for (let i in nums) {
        if (!arry[nums[i]]) {
            arry[nums[i]] = !!arry[nums[i]] + 1
        }else {
            arry[nums[i]] ++
        }
    }
    for(let i in arry){
        if(arry[i] > nums.length/2){
            return i
        }
    }
};

leetcode に対する最速のソリューション:

ソリューションのアイデア:カウンターと中間値を使用し、最初に中間値を設定します。配列の最初のビットについては、走査中に、カウンタが同じである場合、カウンタは 1 だけインクリメントされ、異なる場合、カウンタはデクリメントされます。0 に達すると、次の値に置き換えられます。現在走査されている値。走査が完了すると、中間値 (モード) が返されます。 [おすすめの学習:「
js Basic Tutorial」]

非常に奇妙に感じますが、オフセットという概念があります

var majorityElement = function(nums) {
    let count = 0;
    let majority = nums[0];
    
    for (let i = 0; i < nums.length; i++) {
        if (count === 0) {
            majority = nums[i];
        }
        
        if (majority === nums[i]) {
            count++;
        } else {
            count--;
        }
    }
    return majority;
};

以上がJavaScriptでモードを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。