Leetcode基础刷题之PHP解析(292,303,326)
2019-4-23 星期二 开始吧
今天做的题目都挺简单的,索性直接3篇一起发,省的浪费文章数。别怪我跳题,不是因为hard就是因为要充钱。。。
上一题链接 Leetcode基础刷题之PHP解析(290. Word Pattern)
题目描述
给这道题简单的说就是两个人玩游戏,给定一个数表示数量的意思。每人每轮只能拿走1到3个,拿到最后一个的人算赢,游戏规则是你先拿。
题目分析
只要是4的倍数你就输定了,因为你每次拿的数对方只要补齐四个你就输了。
/** * @param Integer $n * @return Boolean */ function canWinNim($n) { return ($n %4 !==0); }
给定一个整型数组,指定的区间让你求区间之间和的值,我这里实现的时间复杂度是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); */
给定一个整数,判断是否是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
No Comments