婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php實現數組中出現次數超過一半的數字的統計方法

php實現數組中出現次數超過一半的數字的統計方法

熱門標簽:神龍斗士電話機器人 合肥企業外呼系統線路 代理打電話機器人 萍鄉商鋪地圖標注 企業400電話辦理多少費用 電信外呼系統多少錢一個月 宿州正規外呼系統軟件 太原400電話申請流程 桂陽公司如何做地圖標注

數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度為9的數組{1,2,3,2,2,2,5,4,2}。由于數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。

兩種方式:

1、定義一個新數組arr,遍歷數組給arr賦值,arr[元素]=出現的次數
2.排序下arr,取第一個的key和value,key是目標元素,value是出現次數,驗證下后返回
3.時間復雜度是O(n) 空間上會新創建個數組

1、定義變量e代表出現次數最多的元素,變量count用于判斷出現次數用
2.遍歷數組,當前元素與e比較,相同的count++,不同的count--,count為0時當前元素覆蓋e
3.遍歷數組驗證e所出現的次數有沒有超過一半
4.時間復雜度O(n) 空間復雜度O(n)

e,count=1

for i=1;iarr.length;i++

  if arr[i]==e

    count++

  else

    count--

  if count==0

    e=arr[i]

    count=1

count=0

for i=0;iarr.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簡單實現合并2個數字鍵數組值的方法
  • php恢復數組的key為數字序列的方法
  • php提取數字拼接數組的具體操作

標簽:辛集 綏化 白銀 衡陽 太原 鄂州 崇左 廊坊

巨人網絡通訊聲明:本文標題《php實現數組中出現次數超過一半的數字的統計方法》,本文關鍵詞  php,實現,數組,中,出現,次數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php實現數組中出現次數超過一半的數字的統計方法》相關的同類信息!
  • 本頁收集關于php實現數組中出現次數超過一半的數字的統計方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 雅安市| 郑州市| 竹山县| 屏山县| 铅山县| 青冈县| 杭锦旗| 开化县| 南皮县| 缙云县| 凌海市| 凌云县| 榆树市| 湘潭县| 兴宁市| 江西省| 舟曲县| 南宁市| 柳州市| 汝州市| 彰化市| 青海省| 大关县| 金门县| 南开区| 吴桥县| 大化| 桦南县| 嫩江县| 大安市| 贵南县| 西和县| 浠水县| 三穗县| 英德市| 青浦区| 宁陕县| 安多县| 蒙城县| 甘孜| 黔江区|