reverse(s); // reverse string S
reverse(1,n-k); // reverse first n-k characters
reverse(n-k+1,n) // reverse remaining
Time complexity :O(n),space : O(1)
On 10 September 2011 21:53, praveen raj praveen0...@gmail.com wrote:
Whatever changes have been made in array in first step 1 will be
Given an array of 'n' values you need to circular shift it 'k' times towards
left.
Input : 9 7 6 5 3 23 14 2 4
output : 5 3 23 14 2 4 9 7 6
n=9 , k= 3
constraints : Time complexity O(n)
Space complexity O(1)
The solutions with O(kn) time complexity and
O(n) complexity with O(k) space
Solution :-
void main(){int a[9]= {9,7,6,5,3,23,14,2,4} ;int n = 3;int c[3];int
i;int k =0;for ( i=0;i3;i++)
c[i]= a[i];for(i=3;i9;i++)
a[i-3] =a[i];for(i=9-3;i9;i++)
a[i] = c[k++];for(i=0;i9;i++)printf
http://www.opengroup.org/onlinepubs/009695399/functions/printf.html(\n%d,a[i]);}
On Sat,
U have used c[3] extra array.It is already known solution. so it is using
O(k) space .i want the solution with constant space..
On 10 September 2011 02:08, Ishan Aggarwal ishan.aggarwal.1...@gmail.comwrote:
Solution :-
void main(){int a[9]= {9,7,6,5,3,23,14,2,4} ;int n = 3;int c[3];int i;int
consider this approach..
first reverse the entire array...
so it will be.. 4,2,14,23,3,5,6,7,9
and u want to shift k times right so
u have to cut the array as n-k and reverse both the sides u ll get it..
so in ur scenario we are reversing upto the element 5 in array and reversing
the remaining
@sarath:
I did not get u .Could u please explain it with the example.
On 10 September 2011 03:39, sarath prasath prasathsar...@gmail.com wrote:
consider this approach..
first reverse the entire array...
so it will be.. 4,2,14,23,3,5,6,7,9
and u want to shift k times right so
u have to cut
swap k elements form 1 to k and n-k to n respectively...
ex: k=3
temp=k;
int a[9]= {9,7,6,5,3,23,14,2,4} ; has become {14,2,4,5,3,23,9,7,6};
now swap first k elements with k+1 to 2k elements ...now k=2k+1 , do
this step again up to (kn-temp)...
at last {5,3,23,14,2,4,9,7,6,} ;
Time :O(n) and
How is this one ??
int a[9]={9,7,6,5,3,23,14,2,4}
n=9
int *p,*q;
p=a;
for(q=a;in;q++,i++);
ReverseArray(p,q)
p=a[0];
q=a[n-1-k]
ReverseArray(p,q)
p=a[n-k];
q=a[n-1]
ReverseArray(p,q)
void ReverseArray(int *l,int *r)
{
int temp;
while(lr)
{
temp=*l;
*l=*r;
This can also be done:
for( i=0; ik;i++)
{
b[i]=a[i];
}
for (;in;i++)
{
a[i-k]=a[i];
}
while((i-k)n)
{
a[i-k]=b[i];
}
But extra array is used here.
On Sat, Sep 10, 2011 at 5:30 PM, Rohit jalan jalanha...@gmail.com wrote:
How is this one ??
int a[9]={9,7,6,5,3,23,14,2,4}
n=9
@rohit : why don't u have a look at the older posts before replying some
thing ...ok .. I'm sorry if u are hurt ..
what is the time complexity and space complexity of u'r older post ..
On Sat, Sep 10, 2011 at 8:03 AM, Rohit jalan jalanha...@gmail.com wrote:
This can also be done:
for( i=0;
@BharathKumar: extremely sorry dude .. will not do this again .. Can you
forgive me ? :p
On Sep 10, 2011 12:09 PM, bharatkumar bagana bagana.bharatku...@gmail.com
wrote:
@rohit : why don't u have a look at the older posts before replying some
thing ...ok .. I'm sorry if u are hurt ..
what is
Ur idea does not work in the following case
array : 7 5 3 6 9 2 11
n=7 and k=3
as per your explanation the answer would come 9 2 11 6 7 5 3
correct me if i am wrong...
On 10 September 2011 04:54, bharatkumar bagana bagana.bharatku...@gmail.com
wrote:
swap k elements form 1 to k and n-k
@all...
arr=[3,6,7,1,2,7,8,9]
suppose: k=3 rotated three times..
first step... reverse.. first k(3) elements... [7,6,3,1,2,7,8,9]
second step...reverse last (n-k) elements... [7,6,3,9,8,7,2,1]
third step reverse the whole array[1,2,7,8,9,3,6,7]
thanx,
With regards,
Praveen Raj
DCE-IT 3rd
@amrit... +1 ..
With regards,
Praveen Raj
DCE-IT 3rd yr
--
You received this message because you are subscribed to the Google Groups
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to
@praveen:
will u pls explain the second step ... i didn't understand ..
On Sat, Sep 10, 2011 at 8:09 PM, praveen raj praveen0...@gmail.com wrote:
@amrit... +1 ..
With regards,
Praveen Raj
DCE-IT 3rd yr
--
You received this message because you are subscribed to the Google Groups
first do swap like this
if k=3
do 3 tym swap
let start: 1 element from front...its index
let end: 3rd last elemtn index...k lement from last
swap first wiht 3rd last
2nd with second last
3 wiht last
now we have list as:-14 2 4 5 3 23 9 7 6
now set ;4th element from last i.e k+1 from front
swap
Whatever changes have been made in array in first step 1 will be continue
to 2nd step(reverse the n-k elements)
With regards,
Praveen Raj
DCE-IT 3rd yr
735993
praveen0...@gmail.com
On Sun, Sep 11, 2011 at 9:51 AM, bharatkumar bagana
bagana.bharatku...@gmail.com wrote:
17 matches
Mail list logo