摘要:題目描述輸入一個整數(shù)數(shù)組,實(shí)現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分,并保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對位置不變。
題目描述
輸入一個整數(shù)數(shù)組,實(shí)現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分,并保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對位置不變。
分析看題目要求是保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對位置不變,且肯定要移動部分元素,所以可以聯(lián)想到冒泡排序的思想,不過時間復(fù)雜度O(n^2)略高,但是空間復(fù)雜度是O(1)。
另一種思路,開辟一個新數(shù)組,遍歷舊數(shù)組,遇到奇數(shù)就從舊數(shù)組append到新數(shù)組,遍歷完畢之后再把舊數(shù)組中剩下的偶數(shù)全append到新數(shù)組。
冒泡思想實(shí)現(xiàn)
function reOrderArray(a) { if(a === null || a.length === 0) return []; for(var i = a.length; i > 0;i--){ for(var j = 0;j <= i-1;j++) { if(a[j]%2===0&&a[j+1]%2===1){ var temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } return a; }
開辟新數(shù)組實(shí)現(xiàn)
function reOrderArray(a) { if(a === null || a.length === 0) return []; var res = []; var cur = 0; while(cur < a.length){ if(a[cur]%2 === 1){ res.push(a.splice(cur, 1)); }else{ cur++; } } return res.concat(a); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/95769.html
摘要:題目數(shù)值的整數(shù)次方給定一個類型的浮點(diǎn)數(shù)和類型的整數(shù)。思路這道題邏輯上很簡單,但很容易出錯。關(guān)鍵是要考慮全面,考慮到所有情況。是正,負(fù),的情況為的情況。 題目1 數(shù)值的整數(shù)次方 給定一個double類型的浮點(diǎn)數(shù)base和int類型的整數(shù)exponent。求base的exponent次方。 思路 這道題邏輯上很簡單,但很容易出錯。 關(guān)鍵是要考慮全面,考慮到所有情況。 exponent 是正...
摘要:還在上班很無聊數(shù)字華容道暢玩地址開發(fā)源碼地址這個叫前言年末了。光隨機(jī)生成一個亂序數(shù)列是不夠的,還得保證這個數(shù)列的逆序數(shù)為偶數(shù),嗦嘎。所以,我們直接將交換的次數(shù),記為數(shù)列逆序數(shù)個數(shù),就達(dá)到了想要的效果。 還在上班?很無聊?數(shù)字華容道暢玩地址 開發(fā)源碼地址 這個叫前言 年末了。哦,不,要過年了。以前只能一路站到公司的我,今早居然是坐著過來的。新的一年,總要學(xué)一個新東西來迎接新的未來吧,所以...
此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納, 整理出最重要的思路和知識重點(diǎn)并以思維導(dǎo)圖形式呈現(xiàn), 當(dāng)然也會加上我對導(dǎo)圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(diǎn)(不用每次都重復(fù)看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經(jīng)知道解題思路和方法, 想進(jìn)一步加強(qiáng)理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內(nèi)容). 關(guān)...
摘要:第五題對稱二叉樹難度簡單給定一個二叉樹,檢查它是否是鏡像對稱的。第十六題最大連續(xù)的個數(shù)難度簡單給定一個二進(jìn)制數(shù)組,計(jì)算其中最大連續(xù)的個數(shù)。第十八題平方數(shù)之和難度簡單給定一個非負(fù)整數(shù),你要判斷是否存在兩個整數(shù)和,使得。 寫在前面 最近忙著調(diào)教新裝備,沒有及時的寫題解,但是沒有在偷懶沒刷題喔~來認(rèn)真整理下最近做的題目~ 之前考慮按tag來刷題,后來收到了推薦的leetcode題解,就根據(jù)上...
摘要:底層實(shí)現(xiàn)是對象數(shù)組,優(yōu)點(diǎn)是時間為,缺點(diǎn)是和時間為,需要留意的是擴(kuò)容的過程以及的算法本節(jié)參考源碼中放最新的源碼為,組成鏈表或紅黑樹定義從整體上看,底層的存儲結(jié)構(gòu)是基于數(shù)組和鏈表實(shí)現(xiàn)的。實(shí)現(xiàn)了所謂的線程安全,在很多方法上都加上了。 ArrayList ArrayList底層實(shí)現(xiàn)是對象數(shù)組,優(yōu)點(diǎn)是set、get時間為O(1),缺點(diǎn)是add和remove時間為O(n),需要留意的是擴(kuò)容的過程以...
閱讀 2172·2021-11-02 14:48
閱讀 2826·2019-08-30 14:19
閱讀 3005·2019-08-30 13:19
閱讀 1362·2019-08-29 16:17
閱讀 3349·2019-08-26 14:05
閱讀 3053·2019-08-26 13:58
閱讀 3137·2019-08-23 18:10
閱讀 1170·2019-08-23 18:04