力扣 彙總區間

2022-07-07 21:24:12 字數 1564 閱讀 7861

2023年 1月10日 星期日

題目描述:

給定乙個無重複元素的有序整數陣列 nums 。

返回 恰好覆蓋陣列中所有數字 的 最小有序 區間範圍列表。也就是說,nums 的每個元素都恰好被某個區間範圍所覆蓋,並且不存在屬於某個範圍但不屬於 nums 的數字 x 。

列表中的每個區間範圍 [a,b] 應該按如下格式輸出:

"a->b" ,如果 a != b

"a" ,如果 a == b

示例 1:

輸入:nums = [0,1,2,4,5,7]

輸出:["0->2","4->5","7"]

解釋:區間範圍是:

[0,2] --> "0->2"

[4,5] --> "4->5"

[7,7] --> "7"

示例 2:

輸入:nums = [0,2,3,4,6,8,9]

輸出:["0","2->4","6","8->9"]

解釋:區間範圍是:

[0,0] --> "0"

[2,4] --> "2->4"

[6,6] --> "6"

[8,9] --> "8->9"

示例 3:

輸入:nums = [ ]

輸出:[ ]

示例 4:

輸入:nums = [-1]

輸出:["-1"]

示例 5:

輸入:nums = [0]

輸出:["0"]

0 <= nums.length <= 20

-231 <= nums[i] <= 231 - 1

nums 中的所有值都 互不相同

nums 按公升序排列

我寫的**是這樣的:

1 #include2 #include3

char ** summaryranges(int* nums, int numssize, int*returnsize)

12for(; ; i++)16}

17if(p!=i)

20else

if(p == i)

23if(i!=numssize-1)26

27}28 printf("]"

);29

return0;

30}31int

main();

33int numssize = sizeof(nums)/sizeof(int); //

求出陣列的長度

34int returnsize[10

];35

summaryranges(nums,numssize,returnsize);

36return0;

37 }

說明一下:其中的returnsize陣列我沒有用,我直接在函式中輸出了。。。原因是我看不太懂leetcode想要我輸出什麼,難道是在int型別的陣列中輸出帶有"->"的?很奇怪。。吐槽

我想了想,試試這樣可不可以:例如,應該輸出的是["0->2","4->5","7"],我將returnsize陣列內填上0,2,4,5,7?試一試叭。

不得不想吐槽一下力扣。。。

228 彙總區間 力扣(LeetCode)

給定乙個無重複元素的有序整數陣列,返回陣列區間範圍的彙總。示例 1 輸入 0,1,2,4,5,7 輸出 0 2 4 5 7 解釋 0,1,2 可組成乙個連續的區間 4,5 可組成乙個連續的區間。示例 2 輸入 0,2,3,4,6,8,9 輸出 0 2 4 6 8 9 解釋 2,3,4 可組成乙個連續...

合併區間(力扣56)

題目描述 給出乙個區間的集合,請合併所有重疊的區間。輸入輸出示例 示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5...

力扣 區間列表的交集

給定兩個由一些閉區間組成的列表,每個區間列表都是成對不相交的,並且已經排序。返回這兩個區間列表的交集。形式上,閉區間 a,b 其中a b 表示實數x的集合,而a x b。兩個閉區間的交集是一組實數,要麼為空集,要麼為閉區間。例如,1,3 和 2,4 的交集為 2,3 示例 輸入 a 0,2 5,10...