Given an array of size N in which every number is between 1
and N, determine if there are any duplicates in it. You are
allowed to destroy the array if you like.

Answer Posted / faykarta

I'm nearly 100% sure that the only way to do this without
allocating more space is to loop through the entire array
checking elements against each other. Because its an
iterative method it can be optimised for linear memory access.

consider:

for(i = 0; i < N; ++i)
{
for(j = i + 1; j < N; ++j)
{
if(array[i] == array[j])
{
//index look up avoided through compiler optimisation???
return true;
}
}
}
return false;

*(Cache Integrity)The optimisation could be made using
pointer arithmetic or iterator style traversal in C/C++ anyway.

You could perform a custom sort operation that throws out
but i think it will be about the same algorithmic complexity
with less linear memory access and more complex code....

consider: (havent tested this one)

for(i = 0; i < N; ++i)
{
j = array[i] - 1;
while(j != i)
{
//check
if(array[i] == array[j])
{
return true;
}
//swap
array[i] ^= array[j] ^= array[i] ^= array[j];
j = array[i] - 1;
}
}
return false;

Any thoughts on these?
I would stick with brute force method.

Is This Answer Correct ?    1 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Design an implement of the inputs functions for event mode

2968


I need your help, i need a Turbo C code for this problem.. hope u'll help me guys.? Your program will have a 3x3 array. The user will input the sum of each row and each column. Then the user will input 3 values and store them anywhere, or any location or index, temporarily in the array. Your program will supply the remaining six (6) values and determine the exact location of each value in the array. Example: Input: Sum of row 1: 6 Sum of row 2: 15 Sum of row 3: 24 Sum of column 1: 12 Sum of column 2: 15 Sum of column 3: 18 Value 1: 3 Value 2: 5 Value 3: 6 Output: Sum of Row 1 2 3 6 4 5 6 15 7 8 9 24 Sum of Column 12 15 18 Note: Your program will not necessary sort the walues in the array Thanks..

2811


What is data _null_? ,Explain with code when u need to use it in data step programming ?

2828


How can you relate the function with the structure? Explain with an appropriate example.

2923


Cluster head selection in Wireless Sensor Network using C programming language.

3114






create a C-code that will display the total fare of a passenger of a taxi if the driver press enter,the timer will stop. Every 10 counts is 2 pesos. Initial value is 25.00

6316


could you please send the program code for multiplying sparse matrix in c????

3078


Develop a routine to reflect an object about an arbitrarily selected plane

3001


why nlogn is the lower limit of any sort algorithm?

2381


#include int main(void) { int a=4, b=2; a=b<>2 ; printf("%d",a); return 0; }

1075


Sir... please give some important coding questions asked by product companies..

1805


how to test pierrot divisor

2264


Given a spherical surface, write bump-mapping procedure to generate the bumpy surface of an orange

2867


What is the difference between proc means and proc tabulate ? explain with a simple example when you have to use means or tabulate?

3716


Set up procedure for generating a wire frame display of a polyhedron with the hidden edges of the object drawn with dashed lines

3032