leetcode 163缺失的空間

2022-09-28 05:21:12 字數 1573 閱讀 5028

給定乙個排序的整數陣列 nums ,其中元素的範圍在 閉區間 [lower, upper] 當中,返回不包含在陣列中的缺失區間。

示例:輸入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,

輸出: ["2", "4->49", "51->74", "76->99"]

char ** findmissingranges(int* nums, int numssize, int lower, int upper, int*returnsize)

*returnsize = 0

;

if (numssize == 0

) else

return

ans;

} else

if (nums[0] - lower > 1

)

for (int i = 0; i < numssize - 1; i++)

if (nums[i + 1] - nums[i] > 2

) }

if (upper - nums[numssize - 1] == 1

)

if (upper - nums[numssize - 1] > 1

)

return

ans;

}}解題思路

1、考慮陣列為空情況

2、考慮lower和陣列頭部比較

3、考慮中間陣列元素之間比較

4、考慮upper和陣列尾部比較

5、考慮整形運算越界情況

**/*

* * note: the returned array must be malloced, assume caller calls free(). */

//考慮整形越界問題

char ** findmissingranges(int* nums, int numssize, int lower, int upper, int*returnsize)

int count = 0

;

//考慮陣列為空情況

if(numssize == 0

)else

*returnsize =count;

return

res;

}

//頭部

if((long)nums[0]-1 ==lower)

else

if((long)nums[0]-2 >=lower)

//中間

for(int i=1;i)

else

if((long)nums[i]-2 > nums[i-1

]) }

//尾部

if(nums[numssize-1] == (long)upper - 1

) else

if((long)upper-2 >= nums[numssize-1

]) *returnsize =count;

return

res;

}

leetcode 163 缺失的區間

給定乙個排序的整數陣列 nums 其中元素的範圍在 閉區間 lower,upper 當中,返回不包含在陣列中的缺失區間。示例 輸入 nums 0,1,3,50,75 lower 0 和 upper 99,輸出 2 4 49 51 74 76 99 class solution else if num...

LeetCode 163 缺失的區間

給定乙個排序的整數陣列 nums 其中元素的範圍在 閉區間 lower,upper 當中,返回不包含在陣列中的缺失區間。示例 輸入 nums 0 1,3 50,75 lower 0 和 upper 99,輸出 2 4 49 51 74 76 99 class solution if l upper ...

163 缺失的區間

題目描述 給定乙個排序的整數陣列 nums 其中元素的範圍在 閉區間 lower,upper 當中,返回不包含在陣列中的缺失區間。示例 輸入 nums 0,1,3,50,75 lower 0 和 upper 99,輸出 2 4 49 51 74 76 99 方法1 主要思路 1 使用一次遍歷的方式,...