[leetcode]問題解答と解説。169. Majority Element [JavaScript]
皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。
私はある決意をして今臨んでいます。
モチベーションを保つためだけにこれをやっています。
では今日のleetCode。
「169. Majority Element」の解決策と方法。自分がまず挑戦して
やったことをさらけ出します。
※下にある自分のコードは自分で設けた制限時間内に書けたところまです。
これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。
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
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