Java初阶基础刷题

封校生活============ 

目录

1.快乐数

2.丑数

3.各位相加


1.快乐数(链表的思想)

202. 快乐数 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=M1L8https://leetcode-cn.com/problems/happy-number/

题目及要求:

解题思路:

①分为两种情况:a.结果是1(即是快乐数)

                             b.是循环的往复的情况(死循环,想到环状链表)

②环状链表中设置一快一慢的两个指针(slow一次一步,fast一次两步)

③若slow与fast相遇,那么说明是死循环,即非快乐数

④若fast==1,快的到达了1则表明慢的必然也会到达1,即为快乐数

 

代码如下:

class Solution {
    public int sqartNum(int n){
int m=0;
while(n>0){
    m+=(n%10)*(n%10);
    n/=10;
}
return m;
    }
    public boolean isHappy(int n) {
int slow=n;
int fast=sqartNum(n);
while(slow!=fast&&fast!=1){
    slow=sqartNum(slow);
    fast=sqartNum(sqartNum(fast));
} return fast==1;
}
}

2.丑数

263. 丑数 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=M1L8https://leetcode-cn.com/problems/ugly-number/comments/

题目及要求:

 

解题思路:

①将含有某个质因数转化成n%某个质因数=0;

②利用递归将问题进行转换

代码如下:

class Solution {
    public boolean isUgly(int n) {
        if(n==0)return false;
        if(n==1)return true;
        if(n%2==0){
            return isUgly(n/2);
        }if(n%3==0){
          return   isUgly(n/3);
        }if(n%5==0){
            return isUgly(n/5);
        }return false;
    }
}

3.各位相加

258. 各位相加 - 力扣(LeetCode) (leetcode-cn.com)icon-default.png?t=M1L8https://leetcode-cn.com/problems/add-digits/submissions/

题目及要求:

解题思路:

①要知道个位上的数字如何求;n%10;

②要知道怎么将n位数转变为n-1位数,n/10;

代码如下:

class Solution {
    public int addDigits(int num) {
while(num/10>=1){
    int m=0;
      m+=num/10+num%10;
      num=m;
}return num;
    }
}

感谢观看~

 

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张洋洋~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值