測試面試LeetCode系列 一維陣列的動態和

2022-06-08 09:57:07 字數 1572 閱讀 2012

每日一刷的leetcode題目又來了,寒冬之下,助你拿乙個大廠的測開offer

給你乙個陣列 nums 。陣列「動態和」的計算公式為:runningsum[i] = sum(nums[0]…nums[i]) 。

請返回 nums 的動態和。

示例 1:

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

輸出:[1,3,6,10]

解釋:動態和計算過程為 [1, 1+2, 1+2+3, 1+2+3+4] 。

示例 2:

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

輸出:[1,2,3,4,5]

解釋:動態和計算過程為 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。

示例 3:

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

輸出:[3,4,6,16,17]

1 <= nums.length <= 1000

-10^6 <= nums[i] <= 10^6

假設陣列為n,裡面有四個元素:n=[1,2,3,4]

以上演算法處理後的陣列中四個元素分別:

0: n[0]

1: n[0] + n[1]

2: n[0] + n[1] + n[2]

3: n[0] + n[1] + n[2] + n[3]

則可表述為兩個迴圈,第乙個迴圈是迴圈陣列下標,第二個迴圈是每個新陣列元素的累加處理,偽演算法如:

假設新的陣列為new_n

for 下標i in 陣列n:

sum = 陣列n[下標i]

for j in 0..下標i:

sum = sum + 陣列n[下標j]

return new_n

整體演算法如下圖:

實際**如下:

class

solution(object):

defrunningsum(self, nums):

""":type nums: list[int]

:rtype: list[int]

"""#定義處理後的陣列,用於返回

r_nums =

#一重迴圈,獲取原陣列中每個元素和下標

for i in

range(len(num)):

#初始當前sum值,和自身值相等

sum =nums[i]

#從0到當前下標累加,賦值給sum

for j in

range(0, i):

sum = sum +nums[j]

#新增到新陣列中

return r_nums

博主:測試生財(乙個不為996而996的測開碼農)

座右銘:專注測試開發與自動化運維,努力讀書思考寫作,為內捲的人生奠定財務自由。

csdn:

:51cto:

測試面試LeetCode系列 寶石與石頭

給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 1 輸入 j aa s aaabbbb 輸出 3...

測試面試LeetCode系列 IP位址無效化

給你乙個有效的 ipv4 位址 address,返回這個 ip 位址的無效化版本。所謂無效化 ip 位址,其實就是用 代替了每個 示例 1 輸入 address 1.1.1.1 輸出 1 1 1 1 示例 2 輸入 address 255.100.50.0 輸出 255 100 50 0 這道題是典...

測試面試LeetCode系列 字串的左旋轉

字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 1 輸入 s abcdefg k 2 輸出 cdefgab 示例 2 輸入 s lrloseumgh k...