Java学习-2

今天稍微刷了几道算法题,整理便于之后复习.
1.计算小于n的所有质数的个数。

class Solution {
    public int countPrimes(int n) {
        boolean[] arr=new boolean[n];
        int cnt=0;
        for(int i=2;i<n;i++){
            if(arr[i])continue;
            cnt+=1;
            for(int j=i;j<n;j+=i){
                arr[j]=true;
            }
        }
        return cnt;
    }
}

2.如果idx+1不是3/5的倍数,列表对应位置设置为idx+1,如果是3的倍数,对应位置赋值为“Fizz”,5的倍数"Buzz",15的倍数“FizzBuzz”。

class Solution {
    public List<String> fizzBuzz(int n) {
        List<String> res=new ArrayList<>(n);
        for(int i=1;i<=n;i++){
            res.add(i+"");
        }
        for(int i=2;i<n;i+=3){
            res.set(i,"Fizz");
        }
        for(int i=4;i<n;i+=5){
            res.set(i,"Buzz");
        }
        for(int i=14;i<n;i+=15){
            res.set(i,"FizzBuzz");
        }
        return res;
    }
}

3.判断n是不是3的m次幂。

class Solution {
    public boolean isPowerOfThree(int n) {
        if(n>1){
            while(n%3==0){
                n/=3;
            }
        }
        return n==1;
    }
}
posted @ 2023-08-01 19:11  aondw  阅读(4)  评论(0编辑  收藏  举报