> 백엔드 개발 > PHP 튜토리얼 > PHP 배열에서 절반 이상 나타나는 숫자의 통계적 방법을 구현하는 방법(코드)

PHP 배열에서 절반 이상 나타나는 숫자의 통계적 방법을 구현하는 방법(코드)

不言
풀어 주다: 2023-04-04 09:54:01
앞으로
2436명이 탐색했습니다.

이 글의 내용은 배열에 절반 이상 나타나는 숫자의 통계적 방법(코드)을 PHP에서 구현하는 방법에 대한 내용입니다. 필요한 친구들이 참고하면 도움이 될 것입니다. 당신에게.

배열 길이의 절반 이상 나타나는 숫자가 배열에 있으니 이 숫자를 찾아주세요. 예를 들어 길이가 9인 배열 {1,2,3,2,2,2,5,4,2}를 입력합니다. 배열 길이의 절반보다 긴 숫자 2가 배열에 5번 나타나므로 2가 출력됩니다. 존재하지 않으면 0을 출력한다.

두 가지 방법:

1. 새 배열 arr을 정의하고 배열을 탐색한 후 arr에 값을 할당합니다. arr [요소] = 발생 횟수
2. arr을 정렬하고 첫 번째 키와 값을 가져옵니다. 대상 요소, 값은 발생 횟수이며 확인 후 반환됩니다
3. 시간 복잡도는 O(n)입니다. 공간

1에 요소를 나타내도록 변수 e를 정의합니다.
2. 배열을 탐색하고 현재 요소를 동일한 개수++, 다른 개수와 비교합니다. 개수가 0이면 현재 요소가 e를 덮습니다.
3. e가 절반 이상 나타나는지 확인하기 위해 배열을 탐색합니다.
4. 시간은 복잡합니다. 정도 O(n) 공간 복잡도 O(n)

e,count=1
for i=1;i<arr.length;i++
    if arr[i]==e
        count++
    else
        count--
    if count==0
        e=arr[i]
        count=1
count=0
for i=0;i<arr.length;i++
    if arr[i]==e
        count++
if count*2>arr.length
    return e
로그인 후 복사
<?php
$arr=array(1,2,3,2,2,2,5,4,2);
$e=MoreThanHalfNum_Solution($arr);
var_dump($e);

function MoreThanHalfNum_Solution($numbers){
        $arr=$numbers;
        $e=$arr[0];
        $count=1;
        $length=count($arr);
        for($i=1;$i<$length;$i++){
                if($arr[$i]==$e){
                        $count++;
                }else{
                        $count--;
                }   

                if($count==0){
                        $e=$arr[$i];
                        $count=1;
                }   
        }   
        $count=0;
        for($i=0;$i<$length;$i++){
                if($arr[$i]==$e){
                        $count++;
                }   
        }   
        if($count*2>$length){
                return $e; 
        }   
        return 0;

}
로그인 후 복사

위 내용은 PHP 배열에서 절반 이상 나타나는 숫자의 통계적 방법을 구현하는 방법(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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