給定乙個排序的整數陣列 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 使用一次遍歷的方式,...