給定壹個數組,求子數組的最大異或和。
壹個數組的異或和為,數組中所有的數異或起來的結果
三層循環,時間復雜度為O(n^3)
start--i的異或結果為0--i的異或結果^0---start的異或結果
兩層循環,時間復雜度為O(n^2),空間換時間
前綴樹也叫字典樹,是處理字符串的常見的數據結構
(1)根節點沒有字符路徑,除根節點外,每壹個結點都被壹個字符路徑找到.
(2)從根節點到某壹節點,除路徑上經過的字符連接起來,為掃過的對應字符串
(3)每個節點下上的所有的字符路徑上的字符都不同
int path=((num>>move)&1);將int的32位的每壹位都分離出來
傳入壹個值,遍歷每壹位,int path=(num>>move)&1;得到當前的位數
如果當前的位數為31,即當前為符號位,則選擇本身( 符號位如果是1,選擇1異或變為正,0也是這樣 ),其他位置盡量為1,則path^1;
best=cur.nexts[best]!=null?best:(best^1);
如果期待的位置不為空,則走,如果為空,只能走異或的情況
res |=(path^best)<<move;將得到的值移動到對應的位數