LeetCode第二十七題 刪除陣列指定元素

2022-09-11 08:21:10 字數 833 閱讀 2373

remove element

問題簡介:給定陣列nums和值val,在適當位置刪除該值的所有例項並返回新長度.

不要為另乙個陣列分配額外的空間,必須通過使用o(1)額外記憶體修改輸入陣列來實現此目的.

舉例:1.給定陣列 = [3,2,2,3], val = 3,

返回值為2,代表有兩個不等於val的值,此時陣列前兩個值應為[2,2]

2:給定陣列 = [0,1,2,2,3,0,4,2], val = 2,

返回值為5,代表有五個不等於val的值,此時陣列前兩個值應為[0,1,3,0,4]

解法一:設定兩個變數,並遍歷一遍陣列,i表示結果索引即不等於val的個數,j表示遍歷的當前索引,當nums[i]!=nums[j]時,i++並賦值nums[j]

複雜度分析

時間複雜度 : o(n)遍歷一遍陣列

空間複雜度:o(1)定義空間為有限個

解法二:

遍歷陣列,當前索引值等於val時,將當前索引值與n-1交換,n表示陣列長度,每當符合要求時n–1

複雜度分析

時間複雜度 : o(n)遍歷一遍陣列

空間複雜度:o(1)定義空間為有限個

小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海

第二十七周總結

最近一周一直在小組複習,主要複習電路和高數,現在對擔心的還是電路,感覺複習的還不夠紮實。下周一就要考電路了,希望不會掛科。本週偶爾晚飯時間去打打籃球,剩餘時間基本上都在小組緊張的複習,下學期一定在日常學習中查漏補缺,不會在最後複習的時候才發現不會的地方有那麼多。參加了三下鄉的面試,感覺發揮得還可以,...

第二十七天

今天主要學習了linux的程序通訊 程序通訊可分為 管道通訊 訊號通訊 共享記憶體和訊息佇列 管道通訊 分無名管道和有名管道,無名管道一般用於父子程序之間 訊號通訊的產生方式 1.按鍵產生 2.硬體異常產生 除數為0,無效儲存訪問等 3.程序用kill函式給另乙個程序發訊號 4.使用者用kill命令...

2018 9 12第二十七次筆記

cisc和risc的區別 1.cisc是複雜指令集cpu,這裡所說的複雜和簡單是針對設計者而言的,這種體系的設計理念是用最少的指令來完成任務。複雜就體現在cisc的cpu本身設計複雜 工藝複雜,但好處是編譯器好設計,早期的intel一直採用cisc的體系。這種cisc有乙個最致命的缺點就是功耗大!2...