每日一刷的leetcode題目又來了,寒冬之下,助你拿乙個大廠的測開offer
給你乙個陣列 nums 。陣列「動態和」的計算公式為:runningsum[i] = sum(nums[0]…nums[i]) 。假設陣列為n,裡面有四個元素:n=[1,2,3,4]請返回 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
以上演算法處理後的陣列中四個元素分別:
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
整體演算法如下圖:
實際**如下:
classsolution(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...