先來一個超過時間的版本嗎XD
bool increasingTriplet(int* nums, int numsSize){
for (int i=0;i<numsSize-2; i++)
for (int j=i+1;j<numsSize-1;j++)
{
if (nums[i]>=nums[j])
continue;
for (int k=j+1;k<numsSize;k++)
{
if (nums[j]>=nums[k])
continue;
if (nums[i]<nums[j] && nums[j]<nums[k])
return true;
}
}
return false;
}
看過別人的寫法之後,再次感嘆自己不聰明XD
bool increasingTriplet(int* nums, int numsSize){
int low =INT_MAX;
int mid = INT_MAX;
for (int i=0;i<numsSize; i++)
{
if (nums[i]>mid)
return true;
else if (nums[i]< low)
low=nums[i];
else if (nums[i]>low && nums[i]<mid)
mid=nums[i];
}
return false;
}
沒有留言:
張貼留言