您的位置:首页 > 财经 > 金融 > 望城门户网站_沈阳建设工程信息网官网首页_怎么进行网络营销_怎么在百度上推广

望城门户网站_沈阳建设工程信息网官网首页_怎么进行网络营销_怎么在百度上推广

2025/2/27 16:20:18 来源:https://blog.csdn.net/weixin_55937953/article/details/142370005  浏览:    关键词:望城门户网站_沈阳建设工程信息网官网首页_怎么进行网络营销_怎么在百度上推广
望城门户网站_沈阳建设工程信息网官网首页_怎么进行网络营销_怎么在百度上推广

 

给定一个  无重复元素 的 有序 整数数组 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"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>char** summaryRanges(int* nums, int numsSize, int* returnSize)
{char **p = malloc(sizeof(char*)*numsSize);*returnSize = 0;//先将数组元素个数置0int i = 0;while(i < numsSize){int pos = i;//定义初始位置i++;while(i < numsSize && nums[i] == nums[i - 1] + 1)//如果i小于数组的长度并且数组i的元素等于数组i元素+1{i++;//继续往下判断}int end = i - 1;//不相等的位置char *s = malloc(sizeof(char)*30);//开辟一个一维数组装值sprintf(s,"%d",nums[pos]);//将开始位的值装入if(pos < end)//存在两个连续的数{sprintf(s + strlen(s),"->");sprintf(s + strlen(s),"%d",nums[end]);}p[(*returnSize)++] = s; }return p;
}int main()
{int nums[] = {0,1,2,4,5,7};int numsSize = sizeof(nums)/sizeof(nums[0]);int returnSize = 0;char **s = summaryRanges(nums,numsSize,&returnSize);for(int i = 0;i < returnSize;i++)printf("%s  ",s[i]);printf("\n");free(s);s = NULL;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com