> 웹 프론트엔드 > 프런트엔드 Q&A > 자바스크립트에서 모드를 찾는 방법

자바스크립트에서 모드를 찾는 방법

藏色散人
풀어 주다: 2022-01-19 15:12:04
원래의
2448명이 탐색했습니다.

JavaScript에서 모드를 찾는 방법: 1. 새 배열을 만듭니다. 2. 각 값이 나타나는 횟수를 계산합니다. 3. 배열을 탐색하여 모드를 찾습니다.

자바스크립트에서 모드를 찾는 방법

이 기사의 운영 환경: 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 증가시키고, 다르면 1 감소시키며, 0으로 감소하면 현재 순회가 완료된 후 중간값인 값을 반환합니다. 방법. [추천 학습: "js 기본 튜토리얼"]

느낌이 매우 이상합니다. 그 안에 오프셋 아이디어가 있습니다

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;
};
로그인 후 복사

위 내용은 자바스크립트에서 모드를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿