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