关于线性表的一些很有意思的题目1
来源:互联网 发布:centos 6.9 内核版本 编辑:程序博客网 时间:2024/05/16 08:53
题目1:设将n个整数存放在数组中,设计一个算法在时间复杂度上和空间复杂度上尽可能简单的算法,让数组顺序向左移动R位,让数组从(0,1,2,3,4,5,6,7)------>(3,4,5,6,7,0,1,2)
解题思路:我们在线性代数中碰见过A和它的转制,这就是这个题目的思路;(A(T)B(T))(T)=BA ;(这里的A(T)是指A的转制),我们发现通过这样的转化,可以将AB的位置换一下;
我们就以可以例子为例在做一下:(向左移动3位)
1.先对(0.1.2)进行转制变成(2.1.0),这个过程的效率n/2
2.在对(3,4,5,6,7)进行转制变成(7,6,5,4,3)
3.最后在对上面已经转制过后的数组(2,1,0,7,6,5,4,3)转制成(3,4,5,6,7,0,1,2)
这样就可以很好的解决这个问题,这个方法的时间复杂度为O(n) 空间复杂度为O(1)
程序
有其他更加好的方法,可是我觉得有点投机取巧,所以就不介绍了.....
- 关于线性表的一些很有意思的题目1
- 一些有意思的JavaScript题目.
- 一些比较有意思的题目
- 一些有意思的题目之蚂蚁过河
- 一道很有意思的题目
- 一道很有意思的题目
- 一些关于Linux的有意思的文章
- 有意思的程序设计题目
- 另一个有意思的题目
- ------一个有意思的题目-----------
- 有意思的题目
- 一道有意思的题目
- 一个有意思的题目
- 关于树状数组一些有意思的东西
- 关于一些有意思的控件属性记录
- 关于fork一些有意思的问题
- 【C语言】一些有意思的C语言题目,
- cpp primer plus中一些有意思的题目
- 精益求精,志在超越
- $ lsnrctl start 错误的解决
- 抉择
- iis运行asp.net页面提示“服务器应用程序不可用”的解决办法
- 雪花吻aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- 关于线性表的一些很有意思的题目1
- 前/中/后缀表达式的转换
- 常用软件推介
- Assert浅谈
- Andorid Activity
- JDBC插入Mysql数据库中文乱码问题
- 就这样吧 ! 好习惯, 我要养成很多好习惯,今天2010年11月26日
- mtk 中 nvram 的读写操作
- 如何彻底删除oracle