文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
刷题“旋转数组”
给你一个数组 , 将数组中的元素向右轮转 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个元素) , 也是很崩溃啊 。。。
- 特斯拉|马斯克再承诺今年将实现全自动驾驶,预计2022年交付量将轻松增长至50%以上
- 特斯拉|食言2年后,马斯克再做承诺:特斯拉将在2022年实现完全自动驾驶
- tcl|OLED、LCD、MiniLED傻傻分不清,到底怎么选?
- 微信发语音显示系统错误怎么回事
- 光刻胶|默克宣布2025前实现电子科技业务新增在华投资至少10亿元
- 景嘉微|“国家队”出身,实现国产GPU从0到1的突破,景嘉微了不起
- Nature封面:可控核聚变里程碑式新进展,燃烧等离子体实现
- 研究团队|万亿大模型怎么落地?产学研三界联手给出新答案:大小模型协同进化
- 华为荣耀|售价近万却好评如潮,荣耀折叠屏真的香吗?看看评论怎么说
- 元宇宙发展研究报告2.0版:应加大核心技术扶持力度 实现产业链