LeetCode新手刷題記 關於兩數之和的思考

2021-09-16 18:57:36 字數 430 閱讀 3706

int* twosum(int* nums, int numssize, int target) ;

for(int j = 0; j < numssize; j++)

for(int k = j + 1; k < numssize; k++)

if(nums[k] + nums[j] == target)

return 0;

}

for(int j = 1; j < numssize; j++)

for(int k = 0; k < j; k++)

兩者的時間複雜度是一樣的,但是這樣做前者執行用時280ms,而後者只有96ms,這一差距不可謂不大。

那這是為什麼呢?

其實我也不清楚,希望大家能來給我一些思路,或者來幾個大佬教我一下。

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刷題記錄

工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...