Leetcode基础刷题之PHP解析(292,303,326)


2019-4-23 期二  

今天做的题目都挺简单的,索性直接3篇一起发,省的浪费文章数。别怪我跳题,不是因为hard就是因为要充钱。。。

 Leetcode基础刷题之PHP解析(290. Word Pattern)

eb70b7f879b8c36686d47f72a1edf07d.png

给这道题简单的说就是两个人玩游戏,给定一个数表示数量的意思。每人每轮只能拿走1到3个,拿到最后一个的人算赢,游戏规则是你先拿。

只要是4的倍数你就输定了,因为你每次拿的数对方只要补齐四个你就输了。

/**
     * @param Integer $n
     * @return Boolean
     */
    function canWinNim($n) {
        return ($n %4 !==0); 
    }

353e5bf993da30c4cb25ab00d9ae57d4.png

给定一个整型数组,指定的区间让你求区间之间和的值,我这里实现的时间复杂度是O(n),空间复杂度也是O(n),这里可以优化的是空间复杂度,其实我已经想到咋么改了,但是我懒.

class NumArray {
    /**
     * @param Integer[] $nums
     */
    private $nums;

    function __construct($nums) {
        $this->nums=$nums;
    }
  
    /**
     * @param Integer $i
     * @param Integer $j
     * @return Integer
     */
    function sumRange($i, $j) {
        
        while($i<=$j){
            $res +=$this->nums[$i];
            $i++;
        }
        return $res;
    }
}

/**
 * Your NumArray object will be instantiated and called as such:
 * $obj = NumArray($nums);
 * $ret_1 = $obj->sumRange($i, $j);
 */

46803d198deeb3a6192177729f7f3647.png

给定一个整数,判断是否是3的幂数

 /**
     * @param Integer $n
     * @return Boolean
     */
    function isPowerOfThree($n) {
        if($n==0){
            return false;
        }
        $is_power=1;
        while($n%3==0){
            $n =floor($n/3);
        }
        return $is_power==$n;
    }

Github整理地址:https://github.com/wuqinqiang/leetcode-php


点赞 取消点赞 收藏 取消收藏

<< 上一篇: MariaDB数据库Laravel PDO更新或写入数据溢出,原生PDO没问题

>> 下一篇: Leetcode PHP题解--D41 104. Maximum Depth of Binary Tree