0%

    K 次乘运算后的最终数组 II


    给你一个整数数组 nums ,一个整数 k 和一个整数 multiplier

    你需要对 nums 执行 k 次操作,每次操作中:

    • 找到 nums 中的 最小x ,如果存在多个最小值,选择最 前面 的一个。

    • x 替换为 x * multiplier

    k 次操作以后,你需要将 nums 中每一个数值对 109 + 7 取余。

    请你返回执行完 k 次乘运算以及取余运算之后,最终的 nums 数组。

    示例 1:

    输入: nums = [2,1,3,5,6], k = 5, multiplier = 2

    输出: [8,4,6,5,6]

    解释:

    操作 | 结果

    ---|---

    1 次操作后 | [2, 2, 3, 5, 6]

    2 次操作后 | [4, 2, 3, 5, 6]

    3 次操作后 | [4, 4, 3, 5, 6]

    4 次操作后 | [4, 4, 6, 5, 6]

    5 次操作后 | [8, 4, 6, 5, 6]

    取余操作后 | [8, 4, 6, 5, 6]

    示例 2:

    输入: nums = [100000,2000], k = 2, multiplier = 1000000

    输出: [999999307,999999993]

    解释:

    操作 | 结果

    ---|---

    1 次操作后 | [100000, 2000000000]

    2 次操作后 | [100000000000, 2000000000]

    取余操作后 | [999999307, 999999993]

    提示:

    • 1 <= nums.length <= 104

    • 1 <= nums[i] <= 109

    • 1 <= k <= 109

    • 1 <= multiplier <= 106

阅读全文 »

  • 数学
    • 二进制操作技巧
    • 求组合数
    • 线性筛
    • 模数类
    • 乘法逆元
    • 三分法
    • 离散期望
    • 质因数分解
    • 矩阵快速幂
    • 有向图游戏SG函数
    • 大数运算
    • 数论算法模板

阅读全文 »