Leetcode3264:K 次乘运算后的最终数组 I

ops/2024/12/18 22:38:05/

题目描述: 

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

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

  • 找到 nums 中的 最小 值 x ,如果存在多个最小值,选择最 前面 的一个。
  • 将 x 替换为 x * multiplier 。

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

 代码思路: 

这个代码的目的是对输入数组 nums 进行操作,每次找出数组中的最小值,并将这个最小值乘以一个给定的 multiplier(乘数),重复这个过程 k 次。最终,函数需要返回经过 k 次操作后的数组。同时,函数通过 returnSize 参数返回数组的大小。

以下是代码的思路分析:

  1. 初始化变量
    • min 用于存储当前遍历到的最小值。
    • index 用于记录当前最小值的索引。
    • 外层循环变量 i 从 0 到 k-1,表示需要进行 k 次操作。
  2. 寻找最小值并更新
    • 内层循环遍历 nums 数组,从 0 到 numsSize-1
    • 在每次内层循环中,比较当前元素 nums[j] 和 min
    • 如果 nums[j] 小于 min,则更新 min 为 nums[j],并更新 index 为当前索引 j
  3. 更新最小值
    • 完成内层循环后,找到了当前数组中的最小值及其索引 index
    • 将 nums[index] 乘以 multiplier,即 nums[index] = nums[index] * multiplier
  4. 重复操作
    • 回到外层循环,重复上述步骤 k 次。
  5. 返回结果
    • 将 numsSize 赋值给 *returnSize,表示返回数组的大小。
    • 返回 nums 数组。注意这里的实现直接返回了原数组 nums 的指针,而不是通过 malloc 分配的新数组。根据函数注释,假设调用者会负责调用 free() 来释放内存,但在这个实现中,实际上并没有分配新内存,因此调用者不需要(也不应该)对返回的指针调用 free()

代码实现:

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* getFinalState(int* nums, int numsSize, int k, int multiplier, int* returnSize) {for(int i=0;i<k;i++){int min=nums[0];int index=0;for(int j=0;j<numsSize;j++){if(min>nums[j]){index=j;min=nums[j];}}nums[index]=nums[index]*multiplier;}* returnSize=numsSize;return nums;
}

 


http://www.ppmy.cn/ops/143015.html

相关文章

FastAPI 的进阶应用与扩展技术:异步编程与协程、websocket、celery

FastAPI 的进阶应用与扩展技术&#xff1a;异步编程与协程、websocket、celery 目录 &#x1f310; 学习异步编程与协程&#x1f4e1; WebSocket 与实时通信&#x1f6e0; 部署微服务架构&#x1f552; 使用 Celery 处理异步任务 1. &#x1f310; 学习异步编程与协程 在现代…

【Flask+OpenAI】利用Flask+OpenAI Key实现GPT4-智能AI对话接口demo - 从0到1手把手全教程(附源码)

文章目录 前言环境准备安装必要的库 生成OpenAI API代码实现详解导入必要的模块创建Flask应用实例配置OpenAI API完整代码如下&#xff08;demo源码&#xff09;代码解析 利用Postman调用接口 了解更多AI内容结尾 前言 Flask作为一个轻量级的Python Web框架&#xff0c;凭借其…

c++:std::map下标运算符的不合理使用

这是我分析之前遗留代码时发现的一个隐藏点&#xff1b;不过我并不认为这样使用std::map是合理的。 看看简化后的代码&#xff0c;v1、v2的值应该是多少呢&#xff1f; #include <map>std::map<int, int> cm[2];int get_cm_value(int device, int ctrl) { auto …

RabbitMQ Work Queues (工作队列模式) 使用案例

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;RabbitMQ &#x1f4da;本系列文章为个人学…

【图像处理lec3、4】空间域的图像增强

目录 1. 空间域图像增强的背景与目标 2. 空间域处理的数学描述 3. 灰度级变换 4. 幂律变换&#xff08;Power-Law Transformation&#xff09; 5、 分段线性变换 Case 1: 对比度拉伸 Case 2: 灰度切片 Case 3: 按位切片 6、对数变换&#xff08;Logarithmic Transform…

selenium自动爬虫工具

一、介绍selenium爬虫工具 selenium 是一个自动化测试工具&#xff0c;可以用来进行 web 自动化测试、爬虫 selenium 本质是通过驱动浏览器&#xff0c;完全模拟浏览器的操作&#xff0c;比如跳转、输入、点击、下拉等&#xff0c;来拿到网页渲染之后的结果&#xff0c;可支持…

SSE(Server-Sent Events)主动推送消息

说明 使用Java开发web应用&#xff0c;大多数时候我们提供的接口返回数据都是一次性完整返回。有些时候&#xff0c;我们也需要提供流式接口持续写出数据&#xff0c;以下提供一种简单的方式。 SSE&#xff08;Server-Sent Events&#xff09; SSE 是一种允许服务器单向发送事…

Chinese-Clip实现以文搜图和以图搜图

本文不生产技术&#xff0c;只做技术的搬运工&#xff01; 前言 目前网上能够找到的资料有限&#xff0c;要么收费&#xff0c;要么配置复杂&#xff0c;作者主打一个一毛不拔&#xff0c;决定自己动手实现一个&#xff0c;功能清单受启发于Nidia AI lab实验室的nanodb项目&am…