LeetCode-228-匯總區(qū)間

題目描述:給定一個(gè)無(wú)重復(fù)元素的有序整數(shù)數(shù)組 nums 。
列表中的每個(gè)區(qū)間范圍 [a,b] 應(yīng)該按如下格式輸出:
"a->b" ,如果 a != b
"a" ,如果 a == b
示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)。
來(lái)源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/summary-ranges/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:遍歷數(shù)組
首先,初始化一個(gè)result存返回結(jié)果,然后,處理過(guò)程如下:
如果nums為null或者nums沒(méi)有一個(gè)元素,直接返回result;
如果nums只有一個(gè)元素,將唯一的元素添加到result中,返回result;
初始化start和end為數(shù)組的第一個(gè)元素,然后從第1位開(kāi)始遍歷數(shù)組:
遍歷完成后,把最后一個(gè)區(qū)間添加到result結(jié)果中,返回result。
如果當(dāng)前元素比end大1,說(shuō)明是連續(xù)的,將當(dāng)前元素賦值給end;
否則,判斷start是否等于end,即將當(dāng)前區(qū)間添加到result結(jié)果中,然后將當(dāng)前元素賦值給start和end。
【每日寄語(yǔ)】 你要做沖出的黑馬 而不是墜落的星星。
標(biāo)簽: