layout: posttitle: PHP 实现计算强整数
subtitle: PHP 实现计算强整数
date: 2020-05-25
author: he xiaodong
header-img: img/default-post-bg.jpg
catalog: true
tags:
- Go
- PHP
- LeetCode
- 计算强整数

强整数

给定两个正整数 xy,如果某一整数等于 x^i + y^j,其中整数 i >= 0j >= 0,那么我们认为该整数是一个强整数。

返回值小于或等于 bound 的所有强整数组成的列表。

你可以按任何顺序返回答案。在你的回答中,每个值最多出现一次。

示例 1:

  1. 输入:x = 2, y = 3, bound = 10
  2. 输出:[2,3,4,5,7,9,10]
  3. 解释:
  4. 2 = 2^0 + 3^0
  5. 3 = 2^1 + 3^0
  6. 4 = 2^0 + 3^1
  7. 5 = 2^1 + 3^1
  8. 7 = 2^2 + 3^1
  9. 9 = 2^3 + 3^0
  10. 10 = 2^0 + 3^2

示例 2:

  1. 输入:x = 3, y = 5, bound = 15
  2. 输出:[2,4,6,8,10,14]

提示:

  • 1 <= x <= 100
  • 1 <= y <= 100
  • 0 <= bound <= 10^6

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/powerful-integers

解题思路

参考官方答案

PHP 实现

  1. class Solution {
  2. /**
  3. * @param Integer $x
  4. * @param Integer $y
  5. * @param Integer $bound
  6. * @return Integer[]
  7. */
  8. function powerfulIntegers($x, $y, $bound) {
  9. $result = [];
  10. for ($i = 0; $i < 20 && ($x ** $i) <= $bound; $i++) {
  11. for ($j = 0; $j < 20 && ($y ** $j) <= $bound; $j++) {
  12. $v = $x ** $i + $y ** $j;
  13. if ($v <= $bound) {
  14. $result[] = $v;
  15. }
  16. }
  17. }
  18. return array_values(array_unique($result));
  19. }
  20. }

© 原创文章

最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券