不就O(n log n)吗
2026-01-26 20:06:41
发布于:上海
0阅读
0回复
0点赞
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int cmp(const void* a, const void* b) {
return *(int*)a - *(int*)b;
}
int main() {
int n, k;
scanf("%d %d", &n, &k);
int* arr = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
qsort(arr, n, sizeof(int), cmp);
int left=0,right=n-1;
bool found=0;
while (left < right) {
int sum = arr[left] + arr[right];
if(sum==k){
found=1;
break;
}else if(sum < k)left++;
else right--;
}
if(found){
printf("yes\n");
}else{
printf("no\n");
}
free(arr);
return 0;
}
这里空空如也




有帮助,赞一个