Grundlegende Java-Brush-Fragen

Schulschließung =========== 

Inhalt

1. Glückliche Zahlen

2. Hässliche Zahlen

3. Zählen Sie alle zusammen


1. Happy Numbers (die Idee einer verketteten Liste)

202. Glückliche Zahlen – LeetCode (leetcode-cn.com) icon-default.png?t=M1L8https://leetcode-cn.com/problems/happy-number/

Themen und Anforderungen:

Ideen zur Problemlösung:

① Unterteilt in zwei Fälle: a. Das Ergebnis ist 1 (d. h. die glückliche Zahl)

                             b. Es ist der Fall des hin- und hergehenden Zyklus (Endlosschleife, denken Sie an eine kreisförmige verknüpfte Liste).

② Zwei Zeiger, einer schnell und einer langsam, werden in der kreisförmigen verknüpften Liste gesetzt (langsam ist jeweils ein Schritt, schnell sind zwei Schritte gleichzeitig).

③ Wenn sich langsam und schnell treffen, bedeutet dies, dass es sich um eine Endlosschleife handelt, dh um eine nicht glückliche Zahl

④Wenn schnell==1, erreicht das Schnelle 1, was bedeutet, dass das Langsame auch 1 erreichen muss, was die glückliche Zahl ist

 

Code zeigen wie folgt:

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. Hässliche Zahlen

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

Themen und Anforderungen:

 

Ideen zur Problemlösung:

①Wandle einen Primfaktor in n% eines Primfaktors = 0 um;

②Verwenden Sie Rekursion, um das Problem zu transformieren

Code zeigen wie folgt:

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. Zählen Sie alle zusammen

258. Alle hinzufügen – LeetCode (leetcode-cn.com) icon-default.png?t=M1L8https://leetcode-cn.com/problems/add-digits/submissions/

Themen und Anforderungen:

Ideen zur Problemlösung:

①Um zu wissen, wie man die Nummer an einer Stelle findet, n%10;

② Zu wissen, wie man n Ziffern in n-1 Ziffern umwandelt, n/10;

Code zeigen wie folgt:

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

Danke fürs Anschauen~

 

Ich denke du magst

Origin blog.csdn.net/weixin_58850105/article/details/123113495
Empfohlen
Rangfolge