题目:
把一个含有N个元素的额数组循环右移K位,要求时间复杂度O(N),且只允许使用两个附加变量。
解法一:O(N^2)
每次将数组中的元素右移移位,循环K次。当K>N时,右移K位和右移K%N位是一样的。
MyShift(int a[],int N,int K)
{
K%=N;
while(K--)
{
int t=a[N-1];...
分类:
编程语言 时间:
2015-04-28 09:49:29
阅读次数:
131
// 请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”
// 函数原型为:void RightLoopMove(char *pstr,unsigned short steps)
#include
#include
#include
void severse(char *p,char *q) //字符串翻转
{
char temp;
...
分类:
编程语言 时间:
2015-04-22 00:37:57
阅读次数:
222
楼主又来~(≧▽≦)/~啦啦啦,科研,就是要这么一鼓作气。额,其实楼主的老本行是推公式啊,做这些算法题,其实是楼主在偷懒。额,话不多说了,快请出我们今天的主角吧!还是关于数组的-数组循环移位。下面我们来看下题目的要求。题目要求:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N)O(N),且只允许使用两个附加变量。题目解答我们来自己给个例子,来帮助自己思考。如数组为[1, 2...
分类:
编程语言 时间:
2015-04-13 19:03:04
阅读次数:
199
题意:
给一个n*m的图。
'@'代表你的位置,'.'代表空地,'*'代表墙,'$'代表钻石。
在每一秒钟你有四种选择。
1、站着不动。
2、光标往左移动一格。
3、光标往右移动一格。
4、点击光标让自己按光标的方向移动一格。
然后题目还给了一个k,代表每k秒光标整体循环右移一格。
现在问你拿到钻石的最少步数。
思路:
本弱开了一个四维数组判重use[x][y][f][l] ...
分类:
其他好文 时间:
2015-04-13 12:56:05
阅读次数:
148
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:每个输入包含一个测试用例,第1行输入N ( 1=0);第2行输入N个整数...
分类:
编程语言 时间:
2015-04-12 16:17:31
阅读次数:
255
1 #include 2 using namespace std; 3 #define swap(a,b) {a^= b; b^=a; a^=b;}// 原来还可以这样定义宏 4 5 void RightShift( int *Array, int N, int M ) 6 { 7 i...
分类:
编程语言 时间:
2015-04-01 19:23:01
阅读次数:
210
/**********************************************************************
* RightMove.cpp
* Compiler: GCC,VS,VC6.0 win32
* Author:WK
***********************************************************...
分类:
其他好文 时间:
2015-03-29 16:39:46
阅读次数:
134
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.
这道题是要求将单链表循环右移k次,每次...
分类:
其他好文 时间:
2015-03-20 23:53:07
阅读次数:
287
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].
Note:
Try to come up as many solu...
分类:
其他好文 时间:
2015-03-10 12:07:57
阅读次数:
140
将一个长度为n的数组循环右移k次 注意点: k有可能大于n,需要取余。 需要考虑空间开销,存在空间开销为O(1)的解法 需要考虑时间开销 比较巧妙的方法是利用STL内置的reverse函数,做三次即可。举个例子:array[7]={1,2,3,4,5,6,7},n=3 7,6,5,4,3,2,1 5...
分类:
其他好文 时间:
2015-03-05 16:13:38
阅读次数:
285