Leetcode3 螺旋矩陣,復(fù)原IP地址、子集、子集II(重制
我干! 我寫完了但是B站沒有給我自動保存?。?/p>
所以只總結(jié)下最后的兩題,不想重新寫一遍了...
重新寫一遍真可惡啊bilibili!
子集、子集II
子集I就是一個從左到右的嘗試問題,分成取和不取兩種情況,核心代碼如下:
但是子集II中,需要考慮剪枝,因為第二題中存在重復(fù)的元素,但是需要排除重復(fù)的子集。我們采取和前面類似的想法,通過將元素排序,將重復(fù)的元素相鄰,這樣的就可以快速跳過。因為這個是分成取和不取兩種情況,具體的遞歸樹如下:

當(dāng)B=C時,AC子樹就不需要出現(xiàn)了,直接return,然后就會走A的右子樹,然后最終會出現(xiàn)AD A這樣的結(jié)果。其他的子樹我就沒畫了,差不多的思路。
具體的代碼如下:
然后還原IP地址可以使用剩余的字符串長度判斷均分給剩余的分割。因為每個字串最多三個字符,通過這樣的方式可以減掉很多沒有必要的分支
標簽: