美文网首页
求数组中某个元素连续出现的最大个数

求数组中某个元素连续出现的最大个数

作者: 幻无虚生 | 来源:发表于2019-05-29 09:55 被阅读0次

随机一个a,b值的数组,数组长度len=100, 求最大连续b的个数。

示例 :

len=6 随机数组: [b,b,a,b,b,b]
输出: 3

function index(){
    $a='a';
    $b='b';
    $len=100;
    //$array=create_array($a,$b,$len);
    //echo json_encode($array).'<hr>';
    //$p=max_count($array);
    $c=max_count(["b","a","b","b","a","a","b","b","a","b","a","b","b","a","a","b","b","a","a","a","a","b","b","a","a","b","a","b","b","b","b","a","b","a","a","b","a","b","b","a","b","b","b","b","a","a","b","a","a","b","b","a","a","b","a","b","b","a","b","b","a","b","b","b","b","b","b","a","a","b","a","a","a","b","b","b","a","b","a","b","b","a","b","b","a","b","a","b","a","b","b","b","a","b","b","a","b","a","a","a"]);
    print_r($c);
    echo"<br>";
    $p=max_count_b($b,["b","a","b","b","a","a","b","b","a","b","a","b","b","a","a","b","b","a","a","a","a","b","b","a","a","b","a","b","b","b","b","a","b","a","a","b","a","b","b","a","b","b","b","b","a","a","b","a","a","b","b","a","a","b","a","b","b","a","b","b","a","b","b","b","b","b","b","a","a","b","a","a","a","b","b","b","a","b","a","b","b","a","b","b","a","b","a","b","a","b","b","b","a","b","b","a","b","a","a","a"]);
    print_r($p);

}
//生成随机数组
function create_array($a,$b,$len){
    $array=[];
    for($i=0;$i<$len;$i++){
        if(rand(0,1)){
            $array[]=$a;
        }else{
            $array[]=$b;
        }
    }
    return $array;
}
//数组内所有的元素
function max_count($array){
    //echo json_encode($array).'<hr>';
    $p=[];
    $max_count=0;
    $tmp='';
    for($i=0;$i<count($array);$i++){
        if(empty($tmp)){
            $tmp=$array[$i];
        }

        if($tmp==$array[$i]){
            $max_count++;
            if(isset($p[$array[$i]])){
                if($p[$array[$i]]<$max_count){
                    $p[$array[$i]]=$max_count;
                }
            }else{
                $p[$array[$i]]=$max_count;
            }
            continue;
        }

        $i=$i-1;
        $max_count=0;
        $tmp='';
    }
    return $p;
}
//单独输出某个元素
function max_count_b($b,$array){
    $max_count=0;
    $max_b=0;
    foreach($array as $v){
        if($b==$v){
            $max_count++;
            if($max_b<$max_count){
                $max_b=$max_count;
            }
            continue;
        }
        $max_count=0;
    }
    return $max_b;

}
index();

相关文章

  • 求数组中某个元素连续出现的最大个数

    随机一个a,b值的数组,数组长度len=100, 求最大连续b的个数。 示例 : len=6 随机数组: [b,b...

  • 算法训练2

    题目描述:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],...

  • 求连续子序列最大和

    给定一个无序数组,求最大的连续子数组的和 解法一: 思路:暴力解法,最大序列肯定以数组中某个数为起点,则依次遍历以...

  • 算法:贪心算法

    贪心算法:求序列中连续的最大和的组合。 想法是采取逐条记录的方法。 循环数组中的元素,存入一个数组并使其中元素相加...

  • 连续最大和

    一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3...

  • 关移动端的面试经验

    直接ceo面试,啥都不问,直接让写算法问题: 1. 求一个数组中,某个元素出现的次数最大的哪个值; 由于第一道题没...

  • 数组重复元素求值

    数组重复元素求值 题目描述: 数组 a[N] 中存放了 1 至 N - 1 个数,其中某个数重复了一次。求找出重复...

  • 字符串与数组

    字符串与数组 1. 数组重复元素 数组 a[N] 中存放了 1 至 N - 1 个数,其中某个数重复了一次。求找出...

  • 【数组】--零子数组、最大连续子数组、数字连续子数组

    零子数组:对于长度为N的数组,求连续子数组和和最接近0的值和子数组最大连续子数组:给定一个数组A,求A的连续子数组...

  • TypeScript数组操作

    声明 查找数组中某个元素 查找满足条件的所有元素(过滤) 删除某个元素 把多个数组拼接成一个新数组

网友评论

      本文标题:求数组中某个元素连续出现的最大个数

      本文链接:https://www.haomeiwen.com/subject/zbhetctx.html