2.6力扣每日一题-3379转换数组

简介: 本题要求将循环数组 nums 转换为新数组 result:对每个下标 i,按 nums[i] 正负决定左右移动步数(0 则保持),在循环数组中定位目标下标并赋值。关键在于用 `(i + nums[i]) % n`(配合模运算处理负数)高效计算等价下标。代码简洁,时间复杂度 O(n)。

3379. 转换数组 - 力扣(LeetCode)

视频讲解:https://t.bilibili.com/1166681192552988677?share_source=pc_native

给你一个整数数组 nums,它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result

对于每个下标 i(其中 0 <= i < nums.length),独立执行以下操作:

  • 如果 nums[i] > 0:从下标 i 开始,向 移动 nums[i] 步,在循环数组中落脚的下标对应的值赋给 result[i]
  • 如果 nums[i] < 0:从下标 i 开始,向 移动 abs(nums[i]) 步,在循环数组中落脚的下标对应的值赋给 result[i]
  • 如果 nums[i] == 0:将 nums[i] 的值赋给 result[i]

返回新数组 result

注意:由于 nums 是循环数组,向右移动超过最后一个元素时将回到开头,向左移动超过第一个元素时将回到末尾。

示例 1:

输入: nums = [3,-2,1,1]

输出: [1,1,1,3]

解释:

  • 对于 nums[0] 等于 3,向右移动 3 步到 nums[3],因此 result[0] 为 1。
  • 对于 nums[1] 等于 -2,向左移动 2 步到 nums[3],因此 result[1] 为 1。
  • 对于 nums[2] 等于 1,向右移动 1 步到 nums[3],因此 result[2] 为 1。
  • 对于 nums[3] 等于 1,向右移动 1 步到 nums[0],因此 result[3] 为 3。

示例 2:

输入: nums = [-1,4,-1]

输出: [-1,-1,4]

解释:

  • 对于 nums[0] 等于 -1,向左移动 1 步到 nums[2],因此 result[0] 为 -1。
  • 对于 nums[1] 等于 4,向右移动 4 步到 nums[2],因此 result[1] 为 -1。
  • 对于 nums[2] 等于 -1,向左移动 1 步到 nums[1],因此 result[2] 为 4。

提示:

  • 1 <= nums.length <= 100
  • -100 <= nums[i] <= 100

我们先抛开数组下标为非负数这个要求,将nums视为一个向两侧无穷延伸的循环数组。题目说如果nums[i]<0,就向左移动abs(nums[i])位,即左移后的下标为i-abs(nums[i]),即为i+nums[i].

也就是说,无论nums[i]是正或是负,移动后的下标都为i+nums[i],只不过这个i+nums[i]可能大于等于数组的长度或小于0.例如数组长度为4,那么下标1,5,9和下标-3,-7,-11对应的数值是一样的,在这里我们称其为等价的下标。

简化问题:也就是说,我们要解决的问题是,对于一个长度为m的数组nums来说,我们如何找到与i+nums[i]等价的下标,且该下标对nums来说是有效的?

image.png

可见,将x调整为y,只需对m取模,加m,再整体对m取模即可。

Java

class Solution {
   
    public int[] constructTransformedArray(int[] nums) {
   
        int m = nums.length;
        int[] res = new int[m];
        for(int i=0;i<m;i++) {
   
            res[i] = nums[((i + nums[i]) % m + m) % m];
        }
        return res;
    }
}

Go

func constructTransformedArray(nums []int) []int {
   
    m := len(nums)
    res := make([]int,m)
    for i,v := range nums {
   
        res[i] = nums[((i + v) % m + m) % m]
    }
    return res
}

C++

class Solution {
   
public:
    vector<int> constructTransformedArray(vector<int>& nums) {
   
        int m = nums.size();
        vector<int>res(m,0);
        for(int i=0;i<m;i++) {
   
            res[i] = nums[((i + nums[i]) % m + m) % m];
        }
        return res;
    }
};

Python

class Solution:
    def constructTransformedArray(self, nums: List[int]) -> List[int]:
        n = len(nums)
        return [nums[(i + v) % n] for i, v in enumerate(nums)]
目录
相关文章
|
22小时前
|
人工智能 Linux API
新手必看:1分钟部署OpenClaw与多Agent协同保姆级教程,附阿里云百炼API配置及避坑指南
2026年的OpenClaw(原Clawdbot)凭借其强大的多Agent协同能力和跨平台部署特性,成为了实现复杂任务自动化的核心工具。与普通AI工具不同,OpenClaw支持多个智能体各司其职、协同工作,能将复杂任务拆解为多个子任务并行处理,同时具备专业化分工、容错性强的优势。但对于零基础用户而言,从部署到实现多Agent协同,需要完成全平台环境搭建、阿里云百炼API配置、智能体角色定义和工作流编排等一系列步骤。本文将从新手视角出发,详细讲解2026年OpenClaw在阿里云、MacOS、Linux、Windows11的本地部署流程,完成阿里云百炼免费大模型API的核心配置
221 6
|
18天前
|
网络协议 应用服务中间件 网络安全
2026阿里云免费SSL证书申请流程|零基础一步到位,超简单
2026年阿里云免费SSL证书(Digicert品牌)申请指南:零基础一步到位!单账号每年可领20张,有效期3个月(非1年)。全程免费,在数字证书管理服务控制台操作——选“个人测试证书”→提交申请→DNS验证(TXT记录)→审核通过后下载PEM/PFX等多格式证书。到期不续费,重新申请即可。
193 6
|
1月前
|
存储 数据采集 安全
微调与安全隐私 —— 大模型落地的合规必修课
本文聚焦大模型微调中的安全与隐私合规风险,系统剖析数据集、训练、输出三大环节的典型隐患(如敏感信息泄露、版权侵权、模型反演等),提出“脱敏+加密+过滤”全流程防护方案,并推荐合规认证平台与实操工具,助力企业实现技术落地与法律合规双保障。(239字)
|
26天前
|
人工智能 测试技术
LLM创造力可以被度量吗?一个基于提示词变更的探索性实验
本文探讨提示词工程为何仍是“玄学”,并通过实验证明:加入明确指令(如“Be as creative as possible”)可显著、可量化地提升LLM输出多样性,效果甚至超过调高温度。研究以embedding距离为代理指标,覆盖13个主流模型,揭示提示词迭代可度量、可预测,为LLM应用从经验走向工程化提供新路径。
102 17
LLM创造力可以被度量吗?一个基于提示词变更的探索性实验
|
18天前
|
人工智能 网络协议 网络安全
2026阿里云OpenClaw/Clawdbot部署+集成iMessage指南:苹果生态AI助手搭建教程
2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借轻量化容器化架构、灵活的跨平台集成能力,成为个人与小型团队打造专属AI助手的首选工具。其支持自然语言指令解析、多任务自动化执行、多终端同步响应的核心特性,完美适配苹果生态用户的办公与生活需求。iMessage作为苹果生态核心的即时通讯工具,覆盖iPhone、Mac、iPad全终端,具备端到端加密、无缝同步的优势,将两者深度对接,可实现“iMessage发指令、AI自动化执行、全终端收结果”的跨场景体验,无需切换APP,随时随地调用AI能力处理文档生成、数据查询、任务提醒等事务。
628 18
|
26天前
|
弹性计算 小程序 固态存储
云服务器租用价格多少钱一年?用于搭建小程序费用清单,2026最新整理
2026年阿里云小程序服务器最新报价:入门级2核2G轻量服务器低至38元/年(含200M峰值带宽、50G系统盘),99元/年ECS经济型实例续费同价;香港地域25元/月起。覆盖GPU、按量付费及带宽/云盘明细,性价比高,适合个人开发者与中小企业快速部署小程序。
431 17
|
24天前
|
域名解析 人工智能 API
不用懂代码?DeepSeek 个人网站搭建,新手0基础一看就会!
通过阿里云计算巢“DeepSeek个人站点-快速部署”服务,用户可以轻松搭建专属DeepSeek网站。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。整个过程简单快捷,无需代码,最快5分钟完成部署,支持多种AI模型如DeepSeek、Qwen-max、Llama等。详细教程涵盖从购买到设置的每一步,确保用户顺利搭建并访问自己的AI网站。
170 9
|
7天前
|
人工智能 物联网 网络安全
保姆级教学:阿里云+本地部署OpenClaw及 Mimiclaw ESP32-S3单片机嵌入式部署Clawdbot指南
OpenClaw的强大之处在于其跨平台适配能力——既能在阿里云上实现规模化稳定运行,也能在本地电脑轻量调试,甚至能通过Mimiclaw项目在成本仅30元的ESP32-S3单片机上嵌入式部署,真正实现“万物皆可跑AI Agent”。2026年,这三种部署方案均完成核心优化:阿里云版强化了集群调度,本地版优化了资源占用,嵌入式版则突破硬件限制,让AI Agent从“云端专属”下沉到“边缘设备”。
686 5
|
1月前
|
运维 安全 JavaScript
证书信息查看 在线工具分享
这是一款基于Vue 3开发的轻量级在线工具——「证书信息查看」,无需安装、零门槛使用。支持输入域名、粘贴PEM证书或上传文件,秒级解析SSL/TLS证书关键信息(签发者、有效期、域名等),兼顾普通用户、站长与安全爱好者需求,全程本地处理,隐私无忧。
266 11
证书信息查看 在线工具分享
|
27天前
|
人工智能 弹性计算 自然语言处理
还不会部署OpenClaw?阿里云推出五种OpenClaw快速部署方案
OpenClaw(原Clawdbot/Moltbot)是开源本地优先AI代理,能通过自然语言调用浏览器、邮件、文件等工具,真正“替你干活”。阿里云官方推出五种可视化部署方案,零代码、低成本、一键上线,个人、企业与开发者皆可快速拥有专属AI数字员工。
397 23

热门文章

最新文章