64,199
社区成员
发帖
与我相关
我的任务
分享一、总结
今天的比昨天的要顺利一点,昨天的位运算是真的没见识过。第二天了坚持住,加油!!!!
二、战绩
三、解题报告
方法一:
class Solution {
public int sumNums(int n) {
int count =1;
int sum = 0;
while(n > 0){
sum += count;
count++;
n--;
}
return sum;
}
}
思路:逃课
方法二:
class Solution {
public int sumNums(int n) {
boolean flag = n > 0 && (n += sumNums(n - 1)) > 0;
return n;
}
}
思路:
循环代替递归,逻辑语句代替判断语句。
第二题: 231. 2 的幂
class Solution {
public boolean isPowerOfTwo(int n) {
while(n > 1){
if(n % 2 != 0){
return false;
}
n = n / 2;
}
return n==1;
}
}
思路:一直除二如果最后为1则符合,其中奇数肯定不可能,可排除。
第三题:326.3 :3的幂
class Solution {
public boolean isPowerOfThree(int n) {
while(n > 1){
if(n % 3 != 0){
return false;
}
n = n / 3;
}
return n==1;
}
}
思路:与第二题一样,但是n肯定能被3整除。
第四题:342. 4的幂
class Solution {
public boolean isPowerOfFour(int n) {
while(n > 1){
if(n % 4 != 0){
return false;
}
n = n / 4;
}
return n==1;
}
}
思路:与前三个思路一样。
第五题:1492. n 的第 k 个因子
class Solution {
public int kthFactor(int n, int k) {
int count = 0;
for (int i = 1; i <= n ; i++){
if (n % i == 0){
count++;
if (count == k){
return i;
}
}
}
return -1;
}
}
思路,定义一个计数器,每找到一个就加一,当和k相同时返回就可以。
第六题:367. 有效的完全平方数
方法一:
class Solution {
public boolean isPerfectSquare(int num) {
int x = (int)Math.sqrt(num);
return x * x == num;
}
}
思路:使用sqrt来对num进行开方,但是由于强转可能会造成精度缺失,所以需要在来判断一次。
方法二:
class Solution {
public boolean isPerfectSquare(int num) {
if (num == 1){
return true;
}
for(int i = 1; i < num; i++){
if (i * i == num){
return true;
}
}
return false;
}
}
思路:一个一个枚举得到。