工作之餘刷刷題排解下寂寞-1
面試題66. 構建乘積陣列:
解題思路:題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。(偷懶就用了乙個套路,練習了p/c/c++)
python:
類似c++class solution:
def constructarr(self, a: list[int]) -> list[int]:
#除法是最簡單的但是題目不能用,想對於b中任意乙個結果,正好是b【i】左邊的乘積*右邊的乘積
if not a:
return
#i左邊每一位乘積
res=
left=1
right=1
for i in range(len(a)):
#要延遲一位
left=left*a[i]
#同理右邊再乘上左邊的結果
for i in range(len(a)-1,-1,-1):
#延遲一位
res[i]=res[i]*right
right=right*a[i]
return res
c:class solution
//左邊
int left_start=1;
int right_start=1;
//i的左邊
for(int i=0;i=0;i--)
return res;
}};
/**
* note: the returned array must be malloced, assume caller calls free().
*/int* constructarr(int* a, int asize, int* returnsize)
*returnsize=asize;
return res;
}
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...
leetcode刷題記錄
對應劍指offer刷題記錄,leetcode也來個。1.27.移除元素 這道題主要考點是雙指標,我自己的思路是,定義兩個指標,將需要移除的元素移到陣列的最後,同時移動low指標,代表陣列此時的大小,如下 class solution return i 其實還有一種指標,就是快慢指標,並不是像上面這樣...