Leetcode騰訊精選練習24

2021-09-27 06:12:23 字數 963 閱讀 4918

原題:leetcode 78子集

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。

說明:解集不能包含重複的子集。

示例:

輸入: nums = [1,2,3]

輸出: [

[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

]

首先想到的是是按照最常見的給出子集的方法,每個元素只有在某個子集中或者不在這個子集中 這樣子集就是2的n次方。但是還是沒想到好的演算法。然後就去看了一些別人的演算法,這裡覺得位運算的演算法和這個想法最接近。

public static ilist

int>>

subsets

(int

nums)

res.

add(cur);}

return res;

}

這裡自己在思考的時候有乙個問題很困擾。每次i迴圈的時候都會重新對cur(list)開空間,來再次新增元素。我在想為什麼不直接用cur.clear()方法來清除。就是將迴圈裡面寫成這樣。

ilist<

int> cur = new list<

int>()

;for

(int i =

0; i <

1<< nums.length; i++

) res.

add(cur)

; cur.

clear()

;}

這樣最後得到的結果是錯誤的,全是.有點困擾。

Leetcode騰訊精選練習2

原題 兩個大小為 m 和 n 的排序陣列 nums1 和 nums2 請找出兩個排序陣列的中位數並且總的執行時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0 示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 看到這題目自然...

Leetcode騰訊精選練習04

原題 leetcode7 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1...

Leetcode騰訊精選練習05

請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...