网易首页 > 网易号 > 正文 申请入驻

2026-05-27:非负元素轮替。用go语言,给定整数数组 nums 和整数 k。操作规则如下: 1.数组中所有非负数参与处理;它们需要像循环轮替一

0
分享至

2026-05-27:非负元素轮替。用go语言,给定整数数组 nums 和整数 k。操作规则如下:

1.数组中所有非负数参与处理;它们需要像循环轮替一样整体向左移动 k 位。轮替的含义是,移出数组末端的非负数会从开头继续接到后面。

2.数组中所有负数必须完全固定在原位置,不允许移动。

3.轮替结束后,把轮替后的非负数按顺序依次放回数组中,但只会填入原来那些位置为非负数的槽位;所有原本是负数的位置保持不变并跳过不填。

4.最终返回处理后的数组。

1 <= nums.length <= 100000。

-1000000000 <= nums[i] <= 1000000000。

0 <= k <= 100000。

输入: nums = [5,4,-9,6], k = 2。

输出: [6,5,-9,4]。

解释:

非负元素按顺序为 [5, 4, 6]。

以 k = 2 进行向左轮替,结果为 [6, 5, 4]。

将它们放回非负值对应的位置,结果为 [6, 5, -9, 4]。

题目来自离开3819。

一、整体执行过程 步骤 1:提取数组中所有非负数,形成一个独立的非负数列表

遍历原始数组,只把 >= 0 的数字挑出来,负数直接忽略。

  • • 遍历 5 → 非负 → 加入列表

  • • 遍历 4 → 非负 → 加入列表

  • • 遍历 -9 → 负数 → 跳过

  • • 遍历 6 → 非负 → 加入列表

最终得到非负元素列表:
a = [5, 4, 6]
这个列表长度 = 3。

步骤 2:对非负列表进行向左循环轮替 k 位

规则:
非负列表整体向左移动 k 位,左边移出的元素从右侧末尾补回。
k=2,列表长度=3。

原非负列表:[5,4,6]
向左轮替 2 位:

  • • 第 1 位 5 移走

  • • 第 2 位 4 移走

  • • 剩下 6

  • • 移走的 5、4 接到末尾

轮替后结果:[6,5,4]

(代码里没有显式生成轮替后的数组,而是通过索引计算直接取值,效果等价)

步骤 3:把轮替后的非负数,按顺序填回原数组的非负位置

负数位置完全不动、不修改、不覆盖。
只填回原来是非负数的位置。

遍历原始数组,逐个判断:

  1. 1. 位置 0:原是 5(非负)→ 填入轮替后的第 0 个值6

  2. 2. 位置 1:原是 4(非负)→ 填入轮替后的第 1 个值5

  3. 3. 位置 2:原是 -9(负数)→保持不动,还是 -9

  4. 4. 位置 3:原是 6(非负)→ 填入轮替后的第 2 个值4

步骤 4:得到最终数组

填完后数组为:
[6, 5, -9, 4]
与题目要求输出完全一致。

二、时间复杂度

整个过程只做了两次完整遍历数组:

  1. 1. 第一次遍历:提取非负数

  2. 2. 第二次遍历:回填轮替后的值

两次都是O(n),n 是数组长度。
常数系数不影响复杂度,因此:
总时间复杂度 = O(n)

三、额外空间复杂度

额外空间指:除了输入输出外,程序运行时主动开辟的内存。

这里只开辟了一个存储非负数的切片 a,最坏情况(数组全是非负)时,a 的长度等于 n。
因此:
总额外空间复杂度 = O(n)

总结

  1. 1. 执行过程:提取非负数 → 向左轮替 k 位 → 按原非负位置回填 → 负数不动

  2. 2. 时间复杂度:O(n)(线性遍历)

  3. 3. 额外空间复杂度:O(n)(存储非负列表)

Go完整代码如下:

package main

import (
"fmt"
)

func rotateElements(nums []int, k int) []int {
// 取出非负数
a := []int{}
for _, x := range nums {
if x >= 0 {
a = append(a, x)
}
}

// 双指针,把 a 填入 nums,跳过负数
j := k
for i, x := range nums {
if x >= 0 {
nums[i] = a[j%len(a)]
j++
}
}
return nums
}

func main() {
nums := []int{5, 4, -9, 6}
k := 2
result := rotateElements(nums, k)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

def rotate_elements(nums, k):
# 取出非负数
a = [x for x in nums if x >= 0]
# 双指针,把 a 填入 nums,跳过负数
j = k
for i, x in enumerate(nums):
if x >= 0:
nums[i] = a[j % len(a)]
j += 1
return nums

def main():
nums = [5, 4, -9, 6]
k = 2
result = rotate_elements(nums, k)
print(result)

if __name__ == "__main__":
main()

C++完整代码如下:

  



std::vector rotateElements(std::vector& nums, int k) {
// 取出非负数
std::vector a;
for (int x : nums) {
if (x >= 0) {
a.push_back(x);
}
}

// 双指针,把 a 填入 nums,跳过负数
int j = k;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] >= 0) {
nums[i] = a[j % a.size()];
j++;
}
}
return nums;
}

int main() {
std::vector nums = {5, 4, -9, 6};
int k = 2;
std::vector result = rotateElements(nums, k);

for (int x : result) {
std::cout << x << " ";
}
std::cout << std::endl;

return0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
云南4岁小孩离奇失踪,亲属怀疑是被继母拐卖,24年后才真相大白

云南4岁小孩离奇失踪,亲属怀疑是被继母拐卖,24年后才真相大白

千秋文化
2026-09-30 15:37:30
他们预判了你的预判!人家买给自己爸妈的东西,凭啥让你搬回娘家?”

他们预判了你的预判!人家买给自己爸妈的东西,凭啥让你搬回娘家?”

张晓磊
2026-10-03 13:10:42
对手都不习惯没有C罗,为了2030世界杯,葡萄牙足协进退两难

对手都不习惯没有C罗,为了2030世界杯,葡萄牙足协进退两难

足坛刘脂导
2026-10-03 22:29:31
沉默45年,中国终于迎来第二轮“严打”!目标改变总体战正式打响

沉默45年,中国终于迎来第二轮“严打”!目标改变总体战正式打响

闻识
2026-05-04 08:59:03
最强反腐来了!中纪委:2026坚决清除害群之马,一个都不放过!

最强反腐来了!中纪委:2026坚决清除害群之马,一个都不放过!

职场资深秘书
2026-10-03 10:42:42
江西一县称因人口出生率下降,教师规模产生剩余,拟研究转岗分流政策,如何看待这一现象?

江西一县称因人口出生率下降,教师规模产生剩余,拟研究转岗分流政策,如何看待这一现象?

莺燕向露谈公考
2026-10-01 22:05:41
不用蓝牙不用天线,佐治亚理工让植入设备靠人体组织传信号

不用蓝牙不用天线,佐治亚理工让植入设备靠人体组织传信号

字节漫游指南
2026-10-03 00:52:51
2026年诺贝尔文学10月揭晓!中国湖南作家残雪领跑赔率榜榜首!

2026年诺贝尔文学10月揭晓!中国湖南作家残雪领跑赔率榜榜首!

铭记历史呀
2026-10-03 02:23:40
绿联推出彩色墨水屏手机壳:适配苹果iPhone 17/18 Pro及Max,278.8元

绿联推出彩色墨水屏手机壳:适配苹果iPhone 17/18 Pro及Max,278.8元

IT之家
2026-10-02 15:00:11
百亿资金灰飞烟灭!把公司108个美女当作后宫,丁宁到底有多狠?

百亿资金灰飞烟灭!把公司108个美女当作后宫,丁宁到底有多狠?

潋滟晴方DAY
2026-09-02 15:24:52
易建联为妻儿建的洛杉矶豪宅烧成灰,如今2000平空地估价曝光,数字让人意外,中介爆出实情

易建联为妻儿建的洛杉矶豪宅烧成灰,如今2000平空地估价曝光,数字让人意外,中介爆出实情

黎兜兜
2026-08-31 17:33:14
汉口江滩“大金球”的修缮困局

汉口江滩“大金球”的修缮困局

生活魔术专家
2026-10-04 00:18:29
曾志伟:我睡过她!撕破了"京圈交际花",周冬雨的私生活遮羞布

曾志伟:我睡过她!撕破了"京圈交际花",周冬雨的私生活遮羞布

动物奇奇怪怪
2026-10-01 12:42:30
当别人问你贵姓,这几个姓不能称“免贵”,快看看有你的姓吗?

当别人问你贵姓,这几个姓不能称“免贵”,快看看有你的姓吗?

长风文史
2026-10-02 20:47:22
教师大势已定?不出意外,明年“教师行业”将迎来3大变化

教师大势已定?不出意外,明年“教师行业”将迎来3大变化

解说阿洎
2026-10-03 06:17:01
上海成都郑州统统靠边!广州南成中国第一高铁站 客流又“爆”了:单日客流破百万

上海成都郑州统统靠边!广州南成中国第一高铁站 客流又“爆”了:单日客流破百万

快科技
2026-10-03 22:31:07
2次活命机会都没抓住,刘欢的遭遇,给中老年群体提了个醒

2次活命机会都没抓住,刘欢的遭遇,给中老年群体提了个醒

小冠说娱
2026-10-02 11:48:34
“班里全是贫民窟王子和公主”,老师吐槽世道变了,开学怪事连篇

“班里全是贫民窟王子和公主”,老师吐槽世道变了,开学怪事连篇

番外行
2026-09-29 08:31:27
黄仁勋人类在即将进入AI时代之前,电工、水管工和铁工等也将迎来新时代

黄仁勋人类在即将进入AI时代之前,电工、水管工和铁工等也将迎来新时代

西楼知趣杂谈
2026-10-03 21:27:40
西媒:穆里尼奥计划重塑皇马中场,楚阿梅尼专注防守

西媒:穆里尼奥计划重塑皇马中场,楚阿梅尼专注防守

懂球帝
2026-10-04 10:13:14
2026-10-04 11:03:00
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1494文章数 83关注度
往期回顾 全部

科技要闻

苹果确认:iPhone 18 Pro Max有问题

头条要闻

30多年不涨价 山东一列一年亏400多万的慢火车还在开

头条要闻

30多年不涨价 山东一列一年亏400多万的慢火车还在开

体育要闻

“小将”吴曦,中国的莫德里奇

娱乐要闻

杨议没料到,郭德纲如今仍是一呼百应

财经要闻

OpenAI前安全部门员工:公司文化已崩坏

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

数码
亲子
本地
时尚
军事航空

数码要闻

铭凡PCIe扩展卡ESP4B上市:可提供4个M.2与4个SATA接口

亲子要闻

小宝宝抓着小姐姐的手不放,眼睛里满是喜欢的笑意

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

今年秋天的上衣,太上头了!

军事要闻

美国被指正向中东派遣第三艘航母

无障碍浏览 进入关怀版