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

C语言解决轮转数组

轮转数组 | LeetCodehttps://leetcode.cn/problems/rotate-array/description/

方法一:暴力求解

void rotate(int* nums, int numsSize, int k) {int l = 0;int r = 0;k %= numsSize;int n = 0;while (n++ < k){for (r = numsSize - 1, l = r - 1; l >= 0; r--,l--){*(nums + r) = *(nums + r) ^ *(nums + l);*(nums + l) = *(nums + r) ^ *(nums + l);*(nums + r) = *(nums + r) ^ *(nums + l);}}for (n = 0; n < numsSize; n++){printf("%d", *(nums + n));}
}

每右旋一次就需要执行N次,所以时间复杂度的最坏的情况:右旋N-1次。

(N-1\*N),时间复杂度O(N^2),空间复杂度O(1)

方法二:开辟额外数组

void rotate(int* nums, int numsSize, int k) {k %= numsSize;int* str = (int*)malloc( sizeof(int)*numsSize );memcpy(str, nums, numsSize*sizeof(int));memcpy(nums, str + numsSize - k, sizeof(int)*k);memcpy(nums + k, str, sizeof(int)*(numsSize - k));int n = 0;for(n = 0; n < numsSize; n++){printf("%d", *(nums + n));}free(str);str= NULL;
}

先开辟一个新的数组,完全拷贝原数组。然后从新数组把要右旋的数字直接拷贝到原数组的开头,其他的数字拷到原数组的末尾。

时间复杂度是O(N),空间复杂度O(N)。

方法三:逆序法

void Reverse(int* str, int n)
{int l = 0;int r = n - 1;for(;l < r; l++, r--){*(str + l)= *(str + l) ^ *(str + r);*(str + r)= *(str + l) ^ *(str + r);*(str + l)= *(str + l) ^ *(str + r);}
}
void rotate(int* nums, int numsSize, int k) {k %= numsSize;Reverse(nums,numsSize - k);Reverse(nums + numsSize - k, k);Reverse(nums, numsSize);int i = 0;for(i = 0; i < numsSize; i++){printf("%d",*(nums+i));}
}

将前n-k个数字逆序,再将后面的k个数字逆序,最后整体逆序。

http://www.dtcms.com/a/525521.html

相关文章:

  • 网站备案 上线app网站开发住房公积金
  • 网站建设后期需要做什么提供营销网站建设公司
  • 开发运维警示录-《论日志和监控的重要性》_20251024
  • 跨境电商代采:1688商品采集要用到的API列表分享
  • SAP SD交货单批导功能分享
  • 网站栏目设计网站做哪块简单
  • 怎么给网站做二维码龙岗网站建设公司效果
  • 网站建设开题报告网站建站工具有哪些
  • 电话交换机软件3CX安全访问实践:屏蔽IP访问,仅允许域名访问
  • Linux系统中配置history命令显示时间、IP、账号和操作命令
  • springboot3 uuid 唯一标识入门与实战
  • P1041 [NOIP 2003 提高组] 传染病控制
  • 武进建设局网站和业务多一样的平台
  • eclipse可以做门户网站嘛公司建设网站的 计划书
  • Linux小课堂: 从IPv4到IPv6、主机名解析及网络接口管理
  • ant design vue使用date组件,判断要清空却失效的问题
  • 百度seo搜索百度推广优化技巧
  • 手机版网站建设方案福建建设工程信息网官网查询
  • 终结工艺数据分散管理:金仓数据库平替MongoDB,实现参数、配方、流程一体贯通
  • SAP 长文本弹窗函数 及控件使用
  • 常规同轴光源在工业视觉检测上的应用
  • 建设国家游戏网站免费创建音乐网站
  • 网站源码怎么做网站热点新闻事件及观点简单版
  • windows服务器mstsc远程桌面连接输入用户名后连接时自带拼接了本机计算机名称导致用户名一直错误,无法远程,使用.\用户名格式解决
  • 【Diffusion Model】奠基之作DDPM详解
  • 4a级景区网站建设方寸网站建设
  • 【图像超分】论文复现:轻量化超分 | SPAN的Pytorch源码复现,跑通源码进行训练、测试
  • 小红书小组件开发 最早踩坑版
  • 厚街外贸网站建设公司wordpress.org hosting
  • 现在网站用什么语言做最好WordPress整站下载器