
每周总结
发布日期:2021-05-15 01:06:46
浏览次数:18
分类:精选文章
本文共 498 字,大约阅读时间需要 1 分钟。
今天,我遇到了一个编程题,看起来有点挑战性。题目大意是,给定n个元素和q个查询,每个查询对应一个元素的值,我需要找到这个值在原始序列中的位置。然后,找到每个查询的元素,将它们的位置依次找出,并将其移到序列的最前面。这种方法可以提高效率,但暴力实现显然不可行,因为数据量太大了。所以,我得想办法优化。
最开始,我思考了如何记录每个值的位置,而不是直接交换。这可能是一个可行的思路,因为这样,每次找到一个元素的位置可以直接改写,而不需要实际移动元素。这可能节省很多时间。
接下来,我试着用C++来实现这个思路。我有一个数组a记录每个值的位置。当我读取一个需要找到的元素x时,我查找a[x]的值,这是该元素的位置。然后,我需要将这个位置改为1,然后让其他元素的位置根据这个变化进行调整。
比如,如果x的位置是k,那么k的位置原本是k的值,现在改为x的位置变为1。这种方法可以避免大量交换,节省时间。
当然,这只是我的初步想法,还需要具体实现。
我还想,这种方法在数据量大的时候是否高效呢?比如当n和q都达到1e5的时候,这种方法是否在时间限制内完成?这可能需要进行测试,但目前来看,这是一个可行的思路。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月03日 06时51分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ajax请求出现/[object%20Object]错误的解决办法
2019-03-12
流体运动估计光流算法研究
2019-03-12
如何转载博客
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Grafana导入 Promethus node模板
2019-03-12
如何提高SQL查询的效率?
2019-03-12
Docker入门之-镜像(二)
2019-03-12
数据结构——链表(3)
2019-03-12
socket模块和粘包现象
2019-03-12
Python学习--模块
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12
影响拉线位移传感器精度的原因有哪些?
2019-03-12
无法初始化Winsock2.2处理
2019-03-12
Horizon Cloud之UAG访问异常
2019-03-12
vm无法打开电源
2019-03-12
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
2019-03-12
重置UAG Application admin密码
2019-03-12
Horizon Daas租户管理平台扩展分配时报:内部错误
2019-03-12
vcenter访问报503错误处理
2019-03-12