LC-279 Perfect Squares

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.

For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.

BFS
public class Solution {
    public int numSquares(int n) {
        if (n < 2) return n;
        
        List<Integer> edges = new ArrayList<>();
        for (int i = 1; i * i <= n; i++) {
            edges.add(i*i);
        }
        Queue<Integer> queue = new LinkedList<>();
        queue.offer(n);
        int level = 0;
        while (!queue.isEmpty()) {
            level++;
            int size = queue.size();
            for (int i = 0; i < size; i++) {
                int top = queue.poll();
                System.out.println(top);
                //neighbors
                for (int edge : edges) {
                    if (top == edge) {
                        return level;
                    } else if (top < edge) {
                        break;
                    } else {
                        queue.offer(top - edge);
                    }
                }
            }
        }
        return level;
    }
}
dp
//接龍型dp
public class Solution {
    public int numSquares(int n) {
        int[] record = new int[n+1];
        for (int i = 0; i <= n; i++) {
            record[i] = i;
            for (int j = 1; j * j <= i; j++) {
                record[i] = Math.min(record[i], record[i - j * j] + 1);
            }
        }
        return record[n];
    }     
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末欣喧,一起剝皮案震驚了整個濱河市映胁,隨后出現(xiàn)的幾起案子依疼,更是在濱河造成了極大的恐慌祭埂,老刑警劉巖填大,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杯缺,死亡現(xiàn)場離奇詭異掏愁,居然都是意外死亡衫画,警方通過查閱死者的電腦和手機(jī)毫炉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來削罩,“玉大人瞄勾,你說我怎么就攤上這事费奸。” “怎么了进陡?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵愿阐,是天一觀的道長。 經(jīng)常有香客問我趾疚,道長缨历,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任糙麦,我火速辦了婚禮辛孵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赡磅。我一直安慰自己魄缚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布焚廊。 她就那樣靜靜地躺著冶匹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咆瘟。 梳的紋絲不亂的頭發(fā)上嚼隘,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天,我揣著相機(jī)與錄音搞疗,去河邊找鬼嗓蘑。 笑死,一個胖子當(dāng)著我的面吹牛匿乃,可吹牛的內(nèi)容都是我干的桩皿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼幢炸,長吁一口氣:“原來是場噩夢啊……” “哼泄隔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宛徊,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤佛嬉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闸天,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暖呕,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年苞氮,在試婚紗的時候發(fā)現(xiàn)自己被綠了湾揽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖库物,靈堂內(nèi)的尸體忽然破棺而出霸旗,到底是詐尸還是另有隱情,我是刑警寧澤戚揭,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布诱告,位于F島的核電站,受9級特大地震影響民晒,放射性物質(zhì)發(fā)生泄漏精居。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一镀虐、第九天 我趴在偏房一處隱蔽的房頂上張望箱蟆。 院中可真熱鬧,春花似錦刮便、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坝疼,卻和暖如春搜贤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钝凶。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工仪芒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耕陷。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓掂名,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哟沫。 傳聞我的和親對象是個殘疾皇子饺蔑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,747評論 0 33
  • 01 從空中俯瞰嗜诀,引光中學(xué)就像一張方方正正的臉頰猾警,眉毛、眼睛隆敢、鼻子发皿、嘴巴,五官一應(yīng)俱全拂蝎,活脫脫一個刻板的知識分子穴墅。...
    166676344403閱讀 279評論 1 3
  • 單片機(jī)概念 單片機(jī)是指一個集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管它的大部分功能集成在一塊小芯片上,但是它具有一...
    稻香_閱讀 955評論 1 0
  • 兒子:“手拉手” 爸爸:“手拉手” 兒子:“我自己走” 爸爸:“走到哪里去” 兒子:“走到家門口”
    打油先生閱讀 169評論 0 1