mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 08:27:30 +08:00
规范格式
This commit is contained in:
35
leetcode/0970.Powerful-Integers/970. Powerful Integers.go
Normal file
35
leetcode/0970.Powerful-Integers/970. Powerful Integers.go
Normal file
@ -0,0 +1,35 @@
|
||||
package leetcode
|
||||
|
||||
import "math"
|
||||
|
||||
func powerfulIntegers(x int, y int, bound int) []int {
|
||||
if x == 1 && y == 1 {
|
||||
if bound < 2 {
|
||||
return []int{}
|
||||
}
|
||||
return []int{2}
|
||||
}
|
||||
if x > y {
|
||||
x, y = y, x
|
||||
}
|
||||
visit, result := make(map[int]bool), make([]int, 0)
|
||||
for i := 0; ; i++ {
|
||||
found := false
|
||||
for j := 0; pow(x, i)+pow(y, j) <= bound; j++ {
|
||||
v := pow(x, i) + pow(y, j)
|
||||
if !visit[v] {
|
||||
found = true
|
||||
visit[v] = true
|
||||
result = append(result, v)
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
break
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func pow(x, i int) int {
|
||||
return int(math.Pow(float64(x), float64(i)))
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question970 struct {
|
||||
para970
|
||||
ans970
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para970 struct {
|
||||
one int
|
||||
two int
|
||||
b int
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans970 struct {
|
||||
one []int
|
||||
}
|
||||
|
||||
func Test_Problem970(t *testing.T) {
|
||||
|
||||
qs := []question970{
|
||||
|
||||
question970{
|
||||
para970{2, 3, 10},
|
||||
ans970{[]int{2, 3, 4, 5, 7, 9, 10}},
|
||||
},
|
||||
|
||||
question970{
|
||||
para970{3, 5, 15},
|
||||
ans970{[]int{2, 4, 6, 8, 10, 14}},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 970------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans970, q.para970
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, powerfulIntegers(p.one, p.two, p.b))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
45
leetcode/0970.Powerful-Integers/README.md
Executable file
45
leetcode/0970.Powerful-Integers/README.md
Executable file
@ -0,0 +1,45 @@
|
||||
# [970. Powerful Integers](https://leetcode.com/problems/powerful-integers/)
|
||||
|
||||
|
||||
## 题目:
|
||||
|
||||
Given two positive integers `x` and `y`, an integer is *powerful* if it is equal to `x^i + y^j` for some integers `i >= 0` and `j >= 0`.
|
||||
|
||||
Return a list of all *powerful* integers that have value less than or equal to `bound`.
|
||||
|
||||
You may return the answer in any order. In your answer, each value should occur at most once.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: x = 2, y = 3, bound = 10
|
||||
Output: [2,3,4,5,7,9,10]
|
||||
Explanation:
|
||||
2 = 2^0 + 3^0
|
||||
3 = 2^1 + 3^0
|
||||
4 = 2^0 + 3^1
|
||||
5 = 2^1 + 3^1
|
||||
7 = 2^2 + 3^1
|
||||
9 = 2^3 + 3^0
|
||||
10 = 2^0 + 3^2
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: x = 3, y = 5, bound = 15
|
||||
Output: [2,4,6,8,10,14]
|
||||
|
||||
**Note:**
|
||||
|
||||
- `1 <= x <= 100`
|
||||
- `1 <= y <= 100`
|
||||
- `0 <= bound <= 10^6`
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定两个正整数 x 和 y,如果某一整数等于 x^i + y^j,其中整数 i >= 0 且 j >= 0,那么我们认为该整数是一个强整数。返回值小于或等于 bound 的所有强整数组成的列表。你可以按任何顺序返回答案。在你的回答中,每个值最多出现一次。
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
|
||||
- 简答题,题目要求找出满足 `x^i + y^j ≤ bound` 条件的所有解。题目要求输出中不能重复,所以用 map 来去重。剩下的就是 `n^2` 暴力循环枚举所有解。
|
Reference in New Issue
Block a user