最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LeetCode(動(dòng)態(tài)規(guī)劃):464. 我能贏嗎

2023-01-13 00:44 作者:嘿拜灰  | 我要投稿

關(guān)于本題中的位運(yùn)算

public boolean f(int maxChoosableInteger, int desiredTotal, int choos) {
????if (desiredTotal <= 0) {
??????return false;
???}
????if (dp.containsKey(choos)) {
??????return dp.get(choos);
???}
????for (int i = 1;i <= maxChoosableInteger;i++) {
??????if ((choos & (1 << i)) == 0) {
????????if (!f(maxChoosableInteger,desiredTotal-i,choos | (1 << i))) {
??????????dp.put(choos,true);
??????????return true;
???????}
?????}
???}
????dp.put(choos,false);
????return false;
?}
怎么理解這個(gè)?
choos & (1 << i)) == 0?// 判斷i是否被拿
choos | (1 << i)   // 將第i位bit位標(biāo)為1
// 舉個(gè)例子
??//假如整數(shù)池是這樣
? ?1?2?3?4?5?6?7?8?9?10
??// 最開(kāi)始打算用一個(gè)一維數(shù)組表示 可以這樣
value : 0?0?0?0?0?0?0?0?0?0?0 -> int[]
index : 0?1?2?3?4?5?6?7?8?9?10?
??// 由于線性結(jié)構(gòu)對(duì)于改動(dòng)態(tài)規(guī)劃來(lái)說(shuō)復(fù)雜度較高,所有將參數(shù)int[]降維成int類(lèi)型
??// 利用int32個(gè)bit位表達(dá)信息 那么可以這樣
? 0?0?0?0?0?0?0?0?0?0?0 -> int
??// 此時(shí)我們將0視為未拿 1視為已拿
??// 如果 9被拿了那么從右往左以0位置起始就是第9位bit位標(biāo)為1
? 0?1?0?0?0?0?0?0?0?0?0 -> int
??// 假如10已經(jīng)被拿了但是此時(shí)想拿9怎么標(biāo) 將 1左移9位并且與choos做或運(yùn)算 也就是這種表達(dá):choos | (1 << 9)
??// 由于 : 0 | 0 = 0; 0 | 1 = 1; 1 | 1 = 1;
choos:?1?0?0?0?0?0?0?0?0?0?0 -> int
help:?0?1?0?0?0?0?0?0?0?0?0 -> int
ans:??1?1?0?0?0?0?0?0?0?0?0 -> int
??// 假如10,9,7,1都被拿了如何判斷9是否被拿 可以利用1左移9位并且與choos做與運(yùn)算也就是這種表達(dá):choos & (1 << 9)
??// 如果 ans != 0; 說(shuō)明9已經(jīng)被拿了
??// 由于 : 0 & 0 = 0; 0 & 1 = 0; 1 & 1 = 1;
choos:?1?1?0?1?0?0?0?0?0?1?0 -> int
help:?0?1?0?0?0?0?0?0?0?0?0 -> int
ans:??0?1?0?0?0?0?0?0?0?0?0 -> int



LeetCode(動(dòng)態(tài)規(guī)劃):464. 我能贏嗎的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东台市| 封丘县| 黄龙县| 昌平区| 陆丰市| 盐池县| 德庆县| 乌兰县| 怀安县| 南阳市| 星座| 中超| 屯留县| 顺平县| 景泰县| 兴海县| 花垣县| 湘潭市| 仙游县| 大新县| 思南县| 南木林县| 通州区| 天祝| 新宾| 嵊泗县| 康乐县| 德兴市| 镇坪县| 开江县| 通山县| 洪泽县| 宁阳县| 会同县| 阜新市| 长白| 泗阳县| 土默特右旗| 广南县| 云霄县| 肇庆市|