이 글의 내용은 배열에 절반 이상 나타나는 숫자의 통계적 방법(코드)을 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!