主页   代码  

刷题

时间:2018-12-03 12:00

斐波那契数列

非递归

// 1 1 2 3 5 8 13
function fbnq($n = 10)
{
    if($n <= 0){ //传入数列中数字的个数
        return 0;
    }
    $arr[1] = $arr[2] = 1;//设第一个值和第二个值为1
    for ($i=3;$i<=$n;$i++)//从第三个值开始
    {
        $arr[$i] = $arr[$i -1] + $arr[$i - 2];
        //后面的值都是当前值的前一个值加上前两个值的和
    }
    return $arr;

}

递归

function fbnq1($n)
{

    if($n fbnq1($n - 1)+ $this->fbnq1($n -2);
}

在数组中找出重复的数字

方法一

array_unique //去重

$arr1 = "20,30,10,20,30,50";
$arr = explode(',',$arr1); // 字符串组成数组
$res = implode(",",array_unique($arr));
print_f($res);

方法二

function FetchRepeatMemberInArray($arr){
    // 获取去掉重复数据的数组
    $a_u = array_unique($arr);
    // 获取重复数据的数组
    $r_a = array_diff_assoc ( $array, $a_u );
    return $r_a;
}

// 测试用例 
$array = array (
'apple',
'iphone',
'miui',
'apple',
'orange',
'orange'  
);
$repeat_arr = FetchRepeatMemberInArray ( $array );
if($repeat_arr){
    print_r ( $repeat_arr );
}else{
    print_r ("没有重复数据");	
}

方法三

function index()
{
    $a =[
        'aid' => ['1,2','2,3,4']
    ];
    $str = '';

    foreach ($a['aid'] as $k => $v){
        if($k == 0){
            $str .= $v;
        }else{
            $str .= ','.$v;
        }
    }

    $res = array_unique(explode(',',$str));
    print_r($res);
}


  评论





你还可以输入255

提交
返回顶部