用位運算表示元素組合
比如給定數組A = [a0, a1, a2, a3, a4]。爲了表示從數組A中選擇任意個元素的組合狀態。組合總和爲2的n次方。可以通過位運算達成。
設 bits = 1 << len(A).用bits中的每i位來代表A[i]是否已選。bits的每一個不同的值代表了一種組合。
這個在求線性列表的組合數裏面非常有用。也可以用bits來表示具體的選擇狀態。參見leetcode 698. 劃分爲k個相等的子集 官方題解的動態規劃算法。就是用到了bits來表達選擇狀態。
比如給定數組A = [a0, a1, a2, a3, a4]。爲了表示從數組A中選擇任意個元素的組合狀態。組合總和爲2的n次方。可以通過位運算達成。
設 bits = 1 << len(A).用bits中的每i位來代表A[i]是否已選。bits的每一個不同的值代表了一種組合。
這個在求線性列表的組合數裏面非常有用。也可以用bits來表示具體的選擇狀態。參見leetcode 698. 劃分爲k個相等的子集 官方題解的動態規劃算法。就是用到了bits來表達選擇狀態。