Leetcode每日必刷题库第80题,如何在不使用外部空间的情况下对有序数组去重?
LeetCode的第80題,有序數(shù)組去重II(Remove Duplicates from Sorted Array II)。
這題的官方難度是Medium,通過率是43.3%,點贊1104,反對690。這題的通過率有一點點高,然后點贊比也不是很高。說明這題偏容易,并且大家的評價偏低。也的確如此,我個人覺得,大家評價不好的主要原因還是這題偏容易了一些。
題面
其實從題目的標題當中我們已經(jīng)可以得到很多信息了,實際上也的確如此,這題的題面和標題八九不離十,需要我們對一個有序的數(shù)組進行去重。不過去重的條件是最多允許一個元素出現(xiàn)兩次,也就是要將多余的元素去掉。并且題目還限制了需要我們在原數(shù)組進行操作,對于空間復(fù)雜度的要求是。由于我們?nèi)コ嗽刂髸頂?shù)組長度的變化,所以我們最后需要返回完成之后數(shù)組的長度。
這是一種常規(guī)的做法,在C++以及一些古老的語言當中數(shù)組是不能變更長度的。我們想要在原數(shù)組上刪除數(shù)據(jù),只能將要刪除的數(shù)據(jù)移動到數(shù)組末尾,然后返回變更之后的數(shù)組長度。這樣下游就通過返回的數(shù)組長度得知變更之后的數(shù)量變化。由于新晉的一些語言,比如Java、Python都支持數(shù)組長度變動,所以很少在這些語言的代碼當中看到這樣的用法了。
樣例
Given nums = [0,0,1,1,1,1,2,3,3],Your function should return length = 7, with the first seven總結(jié)
以上是生活随笔為你收集整理的Leetcode每日必刷题库第80题,如何在不使用外部空间的情况下对有序数组去重?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 如何制作提交按钮,实现多条件筛选
- 下一篇: 数据结构面试的常客,一文带你深入了解堆
