【发布时间】:2017-05-20 04:18:11
【问题描述】:
数组是升序需要找到重复的数字 需要一个logn时间复杂度的程序
int n[] = {1, 2, 3, 4, 5, 5, 6};
int size = sizeof[n];
int mid;
mid = size/ 2 ;
if (a[mid] == a[mid + 1])
printf("%d",a[mid]);
return a[mid];
else if (a[mid] != a[mid + 1])
for(int i=0;i<mid;i++){
if(a[i]==a[mid+1])
return a[i];
}
else
for(int i=mid ;mid<size;i++){
if(a[mid]==a[mid+1])
return a[mid];
}
【问题讨论】:
-
您需要一个程序...好吧,您似乎走在了正确的轨道上。你有东西写。现在,您有问题吗?
-
1)
int size = sizeof[n];-->int size = sizeof n/ sizeof *n; -
通过
clang-format浏览它,让代码看起来很漂亮。这里有一个在线格式化程序:format.krzaq.cc -
嘿,谢谢
-
else if (a[mid] != a[mid + 1])没有匹配的if (...)。
标签: c