【C++】每日一题 228 汇总区间

给定一个 无重复元素 的 有序 整数数组 nums 。

返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。

列表中的每个区间范围 [a,b] 应该按如下格式输出:

“a->b” ,如果 a != b
“a” ,如果 a == b

#include <iostream>
#include <vector>
#include <string>

std::vector<std::string> findRange(const std::vector<int>& nums) {
    std::vector<std::string> ranges;
    if (nums.empty()) {
        return ranges;
    }

    int start = nums[0];
    int end = nums[0];

    for (int i = 1; i < nums.size(); ++i) {
        if (nums[i] == end + 1) {
            end = nums[i];
        } else {
            if (start == end) {
                ranges.push_back(std::to_string(start));
            } else {
                ranges.push_back(std::to_string(start) + "->" + std::to_string(end));
            }
            start = end = nums[i];
        }
    }

    if (start == end) {
        ranges.push_back(std::to_string(start));
    } else {
        ranges.push_back(std::to_string(start) + "->" + std::to_string(end));
    }

    return ranges;
}

int main() {
    std::vector<int> nums = {1, 2, 3, 6, 7, 9};
    std::vector<std::string> result = findRange(nums);

    // Check and add the last range if any
    if (!result.empty()) {
        std::cout << "The minimum ordered range list covering all numbers is: ";
        for (const auto& range : result) {
            std::cout << range << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}

相关推荐

  1. C++】每日 228 汇总区间

    2024-03-17 06:28:04       15 阅读
  2. 汇总区间算法(leetcode第228)

    2024-03-17 06:28:04       32 阅读
  3. [leetcode] 228. 汇总区间

    2024-03-17 06:28:04       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 06:28:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 06:28:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 06:28:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 06:28:04       18 阅读

热门阅读

  1. Spring之底层架构核心概念解析

    2024-03-17 06:28:04       18 阅读
  2. c# 修改数据集

    2024-03-17 06:28:04       19 阅读
  3. 合作测试开发日志1

    2024-03-17 06:28:04       15 阅读
  4. go的fasthttp学习

    2024-03-17 06:28:04       23 阅读
  5. uniapp 分包

    2024-03-17 06:28:04       19 阅读
  6. 华为交换机端口类型:Access、Trunk、Hybrid

    2024-03-17 06:28:04       20 阅读
  7. day01.蓝桥杯

    2024-03-17 06:28:04       16 阅读
  8. CSS-DAY2

    2024-03-17 06:28:04       20 阅读
  9. 在一个程序页面中加几个字段用于增删改查

    2024-03-17 06:28:04       20 阅读
  10. 大模型近1年的发展所思

    2024-03-17 06:28:04       17 阅读
  11. iguana 库 C++ 反射原理

    2024-03-17 06:28:04       19 阅读