枚举解法:
1.枚举出了次方i和j的全部值的情况下的sum值,同时i和j的范围是0到20。课外的补充有Math.pow()来计算次方的方法,contains()是ArrayList中包含特定值的方法
class Solution {
public List<Integer> powerfulIntegers(int x, int y, int bound) {
//接收的集合
List<Integer> li=new ArrayList<>();
//遍历次方i
for(int i=0;i<=20;i++){
//遍历次方j
for(int j=0;j<=20;j++){
//计算x^i+y^j的值
int sum=(int)Math.pow(x,i)+(int)Math.pow(y,j);
//判断的条件sum大于0和sum小于bound和集合中不包含
if(sum>0&&sum<=bound&&!li.contains(sum) ){
li.add(sum);
}
}
}
return li;
}
}