leetcode刷題記錄 更新中

2021-09-25 19:29:23 字數 2733 閱讀 8874

1、給定乙個排序陣列,原地去掉重複數字(例[1,1,2])

思路:兩個指標問題

過程:我的解法是利用了indexof只返回第乙個

結果:做這道題時間較長,執行時間較長o(n),沒有注意到「排序陣列」

排名靠前的解法:

1、利用了nums[i]與nums[j]交換,較巧妙

2、或者偽裝成原地:

var result = array.

from

(new

set(nums));

nums.

splice(0

,nums.length,

...result)

;

2、兩陣列交集

思路:取交集題目,每發現乙個數,兩個集合都要減去這個數(splice等)

過程:兩個陣列分別splice,⚠️splice的前後依賴問題

結果:執行超過66.71%

排名前:

1、利用filter - true

var

intersect

=function

(nums1, nums2)})

};

1、原地反轉字串陣列(判錯3-4次)

審題:原地、利用o(1)空間

注意點:注意中間停止位置,需要判斷奇偶性嗎?

思路:乙個for迴圈,math.floor(len/2)前後交換(繞過奇偶)

結果:執行時間較快 超過99%

其他題解:

?利用陣列交換兩個數

var

reversestring

=function

(s)}

;

直接s.reverse(),也是原地反轉

2、返回字串中唯一的字元,沒有返回-1(判錯3-4次)

審題:題目中對於完備性有明確指示返回-1,所以這裡要考慮全面,輸入為,輸入為『cc』等等情況(此處兩次判錯)

思路:利用前後的indexof(第一次出現)的加和與字串lengh的關係

注意點:一開始想當然前後indexof相等,腦中要有圖,仔細的畫出「過程」

3、有效的字母異位詞(判錯2次 - 馬虎)

思路:利用indexof和splice結合

結果:執行時間慢,1408ms。。。

其他題解:

1)⚠️利用正則:注意新建正則寫法new regexp(s[0],'g');注意這一句s.length!=t.length,不新增則因為『g』出錯,但』g』可以加快判斷速度。

var

isanagram

=function

(s, t)

return s==t?

true

:false;}

;

1、陣列中的0移動到最後

過程(1h):嘗試用鍊錶做題,removenode時返回後乙個節點

結果:做這道題時間較長,瀏覽器測試通過,提交不通過;練習了js的鍊錶寫法(實現新建鍊錶、刪除節點、鍊錶轉為陣列等)

/**

* @param nums

* @return do not return anything, modify nums in-place instead.

*/var

movezeroes

=function

(nums)

// 將nums變成乙個鍊錶

var nodelist =

; nodelist.head =

newnode

(nums[0]

);for(

var i=

1; i)// 遍歷鍊錶,將0挪到最後

var len =

length

(nodelist)

;var i =0;

var node = nodelist.head;

while

(node && i < len)

else

i++;}

return

fromlisttoarray

(nodelist);}

;function

node

(n)function

addnode

(nodelist, n)

var newnode =

newnode

(n);

node.next = newnode;

return nodelist;

}function

length

(nodelist)

return i;

}function

removenode

(nodelist, removenode)

else

else

return node.next;}}

}}function

fromlisttoarray

(nodelist)

return array;

}

LeetCode刷題記錄 持續更新中

利用棧解決問題 class solution stack.push for int i 0 i這是比較簡單的暴力遍歷 leetcode submit region begin prohibit modification and deletion class solution return pre 總...

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 需要一種方法,尋找符合要求的元...