Leetcode基础刷题之PHP解析(350,371)

栏目: PHP · 发布时间: 5年前

2 0 1 9 - 4 -25   期四    

一篇   Leetcode基础刷题之 PHP 解析(342,344,349)

Leetcode基础刷题之PHP解析(350,371)

两个数组相交。这是349题的扩展版,它允许我们返回相同的数字,但是一定得是两边同时都有。比如我把上面的稍微改动一下

Leetcode基础刷题之PHP解析(350,371)

我的解是先排序,然后定义两个指针对应着数组1和数组2的位置,只要相等直接插入新数组,如果一方大于另一方,另一方自增,反之也是一样的。

 /**
     * @param Integer[] $nums1
     * @param Integer[] $nums2
     * @return Integer[]
     */
    function intersect($nums1, $nums2) {
        $i=0; $j=0;
        sort($nums1);
        sort($nums2);
        $res=[];
        while($i<count($nums1) && $j<count($nums2)){
            if($nums1[$i]==$nums2[$j]){
                array_push($res,$nums1[$i]);
                ++$i;
                ++$j;
            }else if($nums1[$i]>$nums2[$j]){
                ++$j;
            }else{
                ++$i;
            }
        }
        return $res;
    }

Leetcode基础刷题之PHP解析(350,371)

这道题让我们求两数之和,但是不能使用+-运算符。这道题想了几分钟没想出来,后面参考别人的 java 思路,才写的(如果一道题你看了8分钟都没有想法,有两种选择,一个直接当前放弃,记录下,以后再来。另一种看下别人的思路然后再回来自己解)。其实就是用异或算不带进位的和,用与并左移一位来算进位数,然后两者相加。

 /**
     * @param Integer $a
     * @param Integer $b
     * @return Integer
     */
    function getSum($a, $b) {
            return $b==0? $a:$this->getSum($a^$b, ($a&$b)<<1); 
    }

如果这样看着难受,那用迭代

/**
     * @param Integer $a
     * @param Integer $b
     * @return Integer
     */
    function getSum($a, $b) {
        while($b){
            $res=($a & $b)<<1;
            $a=$a ^ $b;
            $b =$res;
        }
        return $a;
    }

以上所述就是小编给大家介绍的《Leetcode基础刷题之PHP解析(350,371)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

失控

失控

[美]凯文·凯利(Kevin Kelly) / 张行舟 等 / 译言·东西文库/电子工业出版社 / 2016-1 / 89.00元

《失控:全人类的最终命运和结局》(全新修订本)是一部思考人类社会(或更一般意义上的复杂系统)进化的“大部头”著作,对于那些不惧于“头脑体操”的读者来说,必然会开卷有益。 “大众智慧、云计算、物联网、虚拟现实、网络社区、网络经济、协作双赢、电子货币……我们今天所知的,绝大多数是我们二十年前就已知的,并且都在这本书中提及了。”——凯文·凯利 《失控》成书于1994年,2010年中文版首次面......一起来看看 《失控》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试