|怎么实现旋转数组呢?
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
刷题“旋转数组”
给你一个数组 , 将数组中的元素向右轮转 k 个位置 , 其中 k 是非负数 。
刷题思路:也不弄高大上 , 就从基本的迭代位移来做:
1.函数f1:实现右移一位的函数f1
2.函数f2:右转轮k个位置 , 就执行k次f1 。
具体代码1、实现右移一位的函数f1
注意1:右移一位时 , 需要将最右边的数据 , 移到最左边 , 故需要一个缓存数据temp 。 注意2:为了不影响后续调用 , 指针需要移动到最左边(数组头部) 。 2.实现转轮函数f2:右转轮k个位置 , 就执行k次f1
3、为了便于观察 , 打印数组前4个元素 , 后4个元素
4、运行main
局部变量nums数组内元素是从lc中拷贝的测试例程数据 , 原来有100k个元素 , 这里先注释部分 , 只保留有4913个元素 , 轮转5次 , 结果符合预期 。 异常点
1、将main中局部变量nums , 取消注释 , 恢复100k个元素 , 进行编译 , 编译器就处于编译状态 , 无法完成 。 2、网上查资料后 , 发现是由于默认的栈大小3、选择最简单的方式 , 将数组改为“static”型 , 编译通过 。
4、然后在main中定义一个100k长度的数组 , 重新赋值 , 可以运行 。之前不定长数组中放入100k个数据 , 不可以运行 。
5、将原100k长度数组 , 改为1M数组 , 报错 。
6、将此1M数组设为全局变量 , 运行正常 。
说明的确是栈空间分配问题 , 导致大数组编译异常 。
结果
然后我把上面测试的f1、f2函数 , 修改名称后 , 放入lc , 执行正确(有限数组) 。 提交超时...【|怎么实现旋转数组呢?】满屏测试数组(100k个元素) , 也是很崩溃啊 。。。
- 年货节日均GMV实现5倍提升,五盘方法论如何助力服饰主播集中爆发
- 研究报告|元宇宙发展研究报告2.0版:应加大核心技术扶持力度 实现产业链健康快速发展
- 企业微信|腾讯应届生公司群怒怼管理层,高管连夜回应,你们是怎么看待?
- |电感怎么掌握?读懂本文就够了
- 高通骁龙|两千预算高端机怎么选?懂手机的人只推荐这四款,够强悍!
- 支付宝|蚂蚁借呗突然不见了是什么原因? 并且支付宝还有欠款怎么办?
- 客服|网络公司服务外包该怎么选?
- 笔记本|新年宅家怎么玩?LG gram二合一笔记本给你点新玩法
- 知识经济|怎么实现旋转数组呢?
- 特斯拉|马斯克再承诺今年将实现全自动驾驶,预计2022年交付量将轻松增长至50%以上