LeetCode题目-136

首页 编程分享 LEET_CODE 正文

leetCode 转载 编程分享 2024-03-13 06:03:26

简介 LeetCode题目-136


✏Leetcode基础刷题之(136. Single Number)


✏描述

给一个不为空的数组,除了一个元素外,每一个元素都会出现两次,找出那个出现一次的数.


✏题目实例

✏题目分析

我的思路(好吧我第一次使用的是暴力破解法,这是一种超级常规的思想,看看就好,他的运行效率会很低,不推荐这种,既然我们刷题了,当然要用更优的解法做题)

      /**
         * @param Integer[] $nums
         * @return Integer
         */
        function singleNumber($nums) {
            $data=[];
           foreach($nums  as $num) {
               if(!in_array($num,$data)) {
                   array_push($data,$num);
               }else{
                   $index=array_search($num,$data);
                   array_splice($data,$index,1);
               }
           }
            return $data[0];
        }

我们可以通过运算符异或(^)来进行比较,当^左边等于右边时,结果为默认值0,当^的左边不等于右边时,结果返回默认值1.所以我们可以将所有的位异或找出唯一的值.

 /**
     * @param Integer[] $nums
     * @return Integer
     */
    function singleNumber($nums) {
        $res=0;
        for($i=0;$i < count($nums);$i++) {
            $res ^=$nums[$i];
        }
        return $res;
    }

转载链接:https://leetcode.cn/


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云