void quick(int *nums,int left,int right){
int piviot=nums[left];
int l=left;
int r=right;
if(left>=right){
return;
}
while(l<r){
while(l<r && nums[r]>=piviot){
r--;
}
if(l<r){
nums[l]=nums[r];
}
while(l<r && nums[l]<=piviot){
l++;
}
if(l<r){
nums[r]=nums[l];
}
if(l>=r){
nums[l]=piviot;}
}
quick(nums,left,l-1);
quick(nums,l+1,right);
}
int find(int *nums,int numsSize){
int start=0;
int i=numsSize-1;
while(i>=0){
if(nums[start]>0){
return -1;
}
if(nums[i]<0){
return -1;
}
int a=0-nums[start];
if(nums[i]==a){
return nums[i];
}
else if(nums[i]<a){
start++;
}
else{
i--;
}
}
return -1;
}
int findMaxK(int* nums, int numsSize){
if(numsSize==0)return -1;
quick(nums,0,numsSize-1);
return find(nums,numsSize);
}
2441. 与对应负数同时存在的最大正整数
最新推荐文章于 2024-10-02 10:19:33 发布