规范格式

This commit is contained in:
YDZ
2020-08-07 15:50:06 +08:00
parent 854a339abc
commit 4e11f4028a
1438 changed files with 907 additions and 924 deletions

View 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)))
}

View File

@ -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")
}

View 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` 暴力循环枚举所有解。