无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
乌拉特中旗| 临安市| 栾川县| 保亭| 和静县| 邛崃市| 姚安县| 周宁县| 湖北省| 习水县| 舞阳县| 兴仁县| 全州县| 长泰县| 新竹县| 藁城市| 辛集市| 赤峰市| 莱西市| 通江县| 周至县| 青浦区| 襄樊市| 奎屯市| 灵寿县| 临泉县| 宁蒗| 金阳县| 黎平县| 开远市| 如东县| 辉南县| 康马县| 项城市| 孙吴县| 玉林市| 怀化市| 绥芬河市| 大同县| 长葛市| 民县|