森田賢二のleetCodeの使い方、解説、解答を毎日更新しているキャラクター

[leetcode]問題解答と解説。169. Majority Element [JavaScript]

[leetcode]問題解答と解説。169. Majority Element [JavaScript]

皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。

私はある決意をして今臨んでいます。
モチベーションを保つためだけにこれをやっています。

では今日のleetCode。
「169. Majority Element」の解決策と方法。自分がまず挑戦して
やったことをさらけ出します。

※下にある自分のコードは自分で設けた制限時間内に書けたところまです。

これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。

森田賢二のleetCode
森田賢二のleetCode

169. Majority Element ルール

ざっくり和訳

Given an array nums of size n, return the majority element.

The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.

サイズnの配列numsが与えられたとき、多数派の要素を返す。

多数決要素は、⌊n / 2⌋以上に出現する要素である。多数決の要素は常に配列中に存在すると仮定してよい。

Example 1:

Input: nums = [3,2,3]
Output: 3
Example 2:

Input: nums = [2,2,1,1,1,2,2]
Output: 2

要素の中で多数派の要素を返してねという問題。

169. Majority Element 問題ページ

169. Majority Element

169. Majority Element

my code is time over.

reduceとかを駆使して効率悪くやる方法は思いつくが、それではleetCodeぽくないのでやってみるも..

function majorityElement(nums: number[]): number {
    let map = new Map
    let majorityNum = Math.floor(nums.length / 2)
    for (let index = 0; index < nums.length; index++) {
        if(map.has(nums[index]) && map.get(nums[index])  > majorityNum) return nums[index]
        if(map.has(nums[index])){
            map.set(nums[index], nums[index]++)
            continue;
        }
        map.set(nums[index], 1)
    }
    return null // null返しているし
};

タイムオーバーで撃沈

169. Majority Element。discussの中の一つの解答例

数ある中からJavaScriptのもので、理解しやすい解説をピックアップしました。
discussから見ればさらにもっと違う方法で真似したくなるものがあるかもしれないですね

JavaScriptでfilterされている、discussはこちらから

[169. Majority Element]()

1

2.

Fastest JavaScript Solution w/ Map & Set

169. Majority Elementをやってみて感想

カテゴリー leetCode