深度搜索

給定一個(gè)序列岳悟,枚舉這個(gè)序列的所有子序列,
目的:從中選擇一個(gè)最優(yōu)子序列泼差,使它某個(gè)特征是所有子序列中國(guó)你最優(yōu)的贵少,如果有需要,還可以保存
這個(gè)問(wèn)題也等價(jià)于堆缘,枚舉從N個(gè)整數(shù)中選擇K個(gè)數(shù)的所有方案

//序列A中n個(gè)數(shù)選k個(gè)數(shù)使得和為x滔灶,最大平方和為maxSumSqu
int n, k, x, maxSumSqu = -1, A[maxn];

//temp存放臨時(shí)方案,ans存放平方和最大方案
vector <int> temp, ans;

//當(dāng)前處理index號(hào)整數(shù)吼肥,當(dāng)前已選整數(shù)個(gè)數(shù)為nowK
//當(dāng)前已選整數(shù)之和為sum录平,當(dāng)前已選整數(shù)平方和為sumSqu

void DFS(int index, int nowK, int sum, int maxSumSqu) {
    if (nowK == k && sum = x) { //找到k個(gè)數(shù)的和為x
        if (sumSqu > maxSumSqu) {   //如果找到比當(dāng)前更優(yōu)的
            maxSumSqu = sumSqu;     //更新最大平方和
            ans = temp;             //更新最優(yōu)方案
        }
        return;
    }

    //已經(jīng)處理完n個(gè)數(shù),或者超過(guò)k個(gè)數(shù)缀皱,或者和超過(guò)x斗这,返回
    id(index == n || nowK > k || sum > x) return;

    //選index號(hào)數(shù)
    temp.push_back(A[index]);
    DFS(index + 1, nowK + 1, sum + A[index], sumSqu + A[index] * A[index]);
    temp.pop_back();

    //不選index號(hào)數(shù)
    DFS(index + 1, nowK, sum, maxSumSqu);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市啤斗,隨后出現(xiàn)的幾起案子表箭,更是在濱河造成了極大的恐慌,老刑警劉巖钮莲,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件免钻,死亡現(xiàn)場(chǎng)離奇詭異彼水,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)极舔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)凤覆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拆魏,你說(shuō)我怎么就攤上這事盯桦。” “怎么了稽揭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)肥卡。 經(jīng)常有香客問(wèn)我溪掀,道長(zhǎng),這世上最難降的妖魔是什么步鉴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任揪胃,我火速辦了婚禮,結(jié)果婚禮上氛琢,老公的妹妹穿的比我還像新娘喊递。我一直安慰自己,他們只是感情好阳似,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布骚勘。 她就那樣靜靜地躺著,像睡著了一般撮奏。 火紅的嫁衣襯著肌膚如雪俏讹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天畜吊,我揣著相機(jī)與錄音泽疆,去河邊找鬼。 笑死玲献,一個(gè)胖子當(dāng)著我的面吹牛殉疼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捌年,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瓢娜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了礼预?” 一聲冷哼從身側(cè)響起恋腕,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逆瑞,沒(méi)想到半個(gè)月后荠藤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伙单,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年哈肖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吻育。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淤井,死狀恐怖布疼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情币狠,我是刑警寧澤游两,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站漩绵,受9級(jí)特大地震影響贱案,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜止吐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一宝踪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碍扔,春花似錦瘩燥、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至二拐,卻和暖如春站蝠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卓鹿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工菱魔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吟孙。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓澜倦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親杰妓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藻治,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 剛剛看到這道題目的時(shí)候,我就知道肯定是一道dfs了巷挥,解法與Leetcode200. 島嶼的個(gè)數(shù)基本沒(méi)有什么區(qū)別吧 ...
    南橘ryc閱讀 459評(píng)論 0 0
  • 第一眼看這個(gè)題目的時(shí)候桩卵,看到長(zhǎng)長(zhǎng)的題干,首先就萌生退意,但是再仔細(xì)想了想雏节,還是很快get到了題目的點(diǎn)胜嗓,就是一個(gè)簡(jiǎn)單...
    南橘ryc閱讀 456評(píng)論 0 0
  • 第一次在簡(jiǎn)書(shū)上發(fā)表文章,感覺(jué)有些緊張 這次題目是一個(gè)深度搜索的題目 給定一個(gè)二維的矩陣钩乍,包含'X'和'O'(字母 ...
    南橘ryc閱讀 377評(píng)論 0 1
  • 首先有一個(gè)概念:回溯回溯法(探索與回溯法)是一種選優(yōu)搜索法辞州,按選優(yōu)條件向前搜索,以達(dá)到目標(biāo)寥粹。但當(dāng)探索到某一步時(shí)变过,發(fā)...
    愛(ài)搞事的喵閱讀 715評(píng)論 0 0
  • 轉(zhuǎn)載自Hello, it works! 深度優(yōu)先搜索 深度優(yōu)先搜索算法(Depth First Search),是...
    白馬游俠閱讀 4,630評(píng)論 0 6