分享一道算法题的PHP趣味解法

wufei123 发布于 2023-04-29 阅读(1402)

本篇文章给大家带来了关于php的相关知识,其中主要跟大家分享一道算法题的趣味解法,有代码示例,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

分享一道算法题的PHP趣味解法

最近在 Leetcode 上看到的,给人眼前一亮的感觉。

原文链接:https://leetcode.cn/problems/contains-duplicate/

题目

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

示例 1:

 

输入:nums = [1,2,3,1]

输出:true

 

示例 2:

 

输入:nums = [1,2,3,4]

输出:false

 

示例 3:

 

输入:nums = [1,1,1,3,3,4,3,2,4,2]

输出:true

标准解法

1

2

3

4

5

6

7

8

9

10

11

12

function containsDuplicate($nums) {

 

    foreach($nums as $val){

        if($repeat[$val] != ''){

            return true;

        }else{

            $repeat[$val] = $val;

        }

    }

    return false;

 

}

趣味解法

原理:掷两个骰子,次数足够多,有相同的话,说明是有重复的。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function containsDuplicate($nums) {

        $total = count($nums);

 

       for ($i=0; $i < 100000; $i++) {

           $a = mt_rand() % $total;

           $b = mt_rand() % $total;

 

            if($a != $b && ($nums[$a] == $nums[$b])){

                return true;

            }

       }

 

        return false;

    }


以上就是分享一道算法题的PHP趣味解法的详细内容


标签:  PHP 免费教程 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。