LeetCode算法題-Self Dividing Numbers(Java實(shí)現(xiàn))

這是悅樂書的第305次更新,第324篇原創(chuàng)

01 看題和準(zhǔn)備

今天介紹的是LeetCode算法題中Easy級別的第173題(順位題號是728)。自分割數(shù)是一個(gè)可被其包含的每個(gè)數(shù)字整除的數(shù)字。例如,128是自分割數(shù),因?yàn)?28%1 == 0,128%2 == 0,128%8 == 0。此外,不允許自分割數(shù)包含數(shù)字零。給定數(shù)字的下限和上限,輸出每個(gè)可能的自分割數(shù)的數(shù)組,如果可能,包括邊界。例如:

輸入:left = 1,right = 22

輸出:[1,2,3,4,5,6,7,8,9,11,12,15,22]

注意:每個(gè)輸入?yún)?shù)的邊界是1 <= left <= right <= 10000。

本次解題使用的開發(fā)工具是eclipse,jdk使用的版本是1.8,環(huán)境是win7 64位系統(tǒng),使用Java語言編寫和測試。

02 第一種解法

此題要求找出給定范圍內(nèi)所有符合要求的自分割數(shù),直接將題目意思翻譯過來就行,單獨(dú)寫了一個(gè)判斷是否是自分割數(shù)的判斷方法。

public List<Integer> selfDividingNumbers(int left, int right) {
    List<Integer> list = new ArrayList<Integer>();
    for (int i=left; i<=right; i++) {
        if (isSelfDividing(i)) {
            list.add(i);
        }
    }
    return list;
}

public boolean isSelfDividing(int num){
    char[] arr = (num+"").toCharArray();
    for (char ch : arr) {
        if (ch == '0' || num%(ch-'0') != 0) {
            return false;
        }
    }
    return true;
}


03 第二種解法

我們也可以直接在一個(gè)方法里面完成,第一種解法是轉(zhuǎn)成字符數(shù)組來判斷,此解法是利用取余和整除結(jié)合來取每一位數(shù)。

public List<Integer> selfDividingNumbers(int left, int right) {
    List<Integer> list = new ArrayList<Integer>();
    for (int i=left; i<=right; i++) {
        int num = 0;
        for (num=i; num>0; num/=10) {
            if (num%10 == 0 || i%(num%10) != 0) {
                break;
            }
        }
        if (num == 0) {
            list.add(i);
        }
    }
    return list;
}


04 小結(jié)

算法專題目前已日更超過五個(gè)月,算法題文章173+篇,公眾號對話框回復(fù)【數(shù)據(jù)結(jié)構(gòu)與算法】、【算法】、【數(shù)據(jù)結(jié)構(gòu)】中的任一關(guān)鍵詞,獲取系列文章合集。

以上就是全部內(nèi)容,如果大家有什么好的解法思路、建議或者其他問題,可以下方留言交流,點(diǎn)贊、留言、轉(zhuǎn)發(fā)就是對我最大的回報(bào)和支持!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容