当前位置: 首页 > news >正文

bluecode-数字增殖问题

问题描述

给定一个正整数 n,定义一次"增殖"操作如下:

  • 将数字 n 转化为一个包含 1 到 n 的递增序列
  • 例如:当 n = 4 时,一次增殖后变为序列 [1, 2, 3, 4]

现给定三个正整数:

  • 初始数字 n
  • 增殖次数 k
  • 位置索引 p(从1开始计数)

请计算经过 k 次增殖操作后,序列中第 p 个位置的数字。如果 p 超出序列长度,则返回 -1

示例说明

示例 1:

测试样例

样例1:

输入:n = 4 ,k = 3 ,p = 19
输出:3
解释:
第1次增殖:4 -> [1,2,3,4]
第2次增殖:[1,2,3,4] -> [1, 1,2, 1,2,3, 1,2,3,4]
第3次增殖:得到最终序列 [1, 1, 1,2, 1, 1,2, 1,2,3, 1, 1,2, 1,2,3, 1,2,(3),4] -> ,第19个位置的数字是3

样例2:

输入:n = 3 ,k = 2 ,p = 5
输出:2
解释:
第1次增殖:3 -> [1,2,3]
第2次增殖:[1,2,3] -> [1, 1,2, 1,(2),3]
第5个位置的数字是2

样例3:

输入:n = 5 ,k = 1 ,p = 7
输出:-1
解释:
第1次增殖:5 -> [1,2,3,4,5]
序列长度为5,p=7超出范围,返回-1


#include <iostream>
#include <vector>
using namespace std;

int solution(int n, int k, int p) {
  // 初始序列只有一个数字 n
  vector<int> seq = {n};

  // 进行 k 次增殖
  for (int i = 0; i < k; i++) {
    vector<int> new_seq; // 存储新的序列
    // 对当前序列的每个数字进行增殖
    for (int x : seq) {
      for (int j = 1; j <= x; j++) {
        new_seq.push_back(j); // 生成 [1, 2, ..., x] 并加入新序列
      }
    }
    seq = new_seq; // 更新序列为新序列
  }

  // 检查 p 是否在范围内(p 从 1 开始计数)
  if (p > seq.size() || p < 1) {
    return -1;
  }

  // 返回第 p 个位置的数字(索引从 0 开始,所以用 p-1)
  return seq[p - 1];
}

int main() {
  // Add your test cases here
  std::cout << (solution(4, 3, 19) == 3) << std::endl;
  return 0;
}

相关文章:

  • CPU 4核8个逻辑处理器
  • 微服务集成测试 -华为OD机试真题(A卷、JavaScript)
  • 洛谷题单2-P5717 【深基3.习8】三角形分类-python-流程图重构
  • 页面加载过多图片导致卡顿——解决方案详解
  • 【蓝桥杯】单片机设计与开发,速成备赛
  • idea打包Plugin ‘org.springframework.boot:spring-boot-maven-plugin:’ not found
  • 【奇点时刻】GPT-4o新生图特性深度洞察报告
  • QT之QML(简单示例)
  • Three.js 实现 3D 数学欧拉角
  • 第六天 - os/subprocess模块 - 系统进程管理 - 练习:服务状态监控脚本
  • Qt远程连接数据库,注册,登录
  • 2025年江苏省职业院校技能大赛 (高职组)大数据应用开发赛项任务书 (样题)
  • 大语言模型智体的综述:方法论、应用和挑战(下)
  • C#高级:利用LINQ进行实体列表的集合运算
  • 基于SpringBoot的网上订餐系统(源码+数据库+万字文档+开题报告+ppt)
  • 核心知识——Spark核心数据结构:RDD
  • Libevent TCP开发指南
  • Python Web 框架 django-vue3-admin快速入门 django后台管理
  • STM32智能手表——任务线程部分
  • anaconda安装 创建虚拟环境+pycharm中conda环境配置
  • 外媒:哈马斯一名高级指挥官尸体被发现,系辛瓦尔弟弟
  • 台湾关闭最后的核电,岛内担忧“非核家园”缺电、涨电价困局难解
  • 蒲慕明院士:未来数十年不是AI取代人,而是会用AI的人取代不会用的
  • 降水较常年同期少五成,安徽四大水利工程调水超11亿方应对旱情
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 中国证券业协会修订发布《证券纠纷调解规则》