2022年11月19日 星期六

[376] Wiggle Subsequence

感覺好像沒有很漂亮但是也沒有不行吧 XD(自我安慰)
最開頭要做初始是up or down 的檢查,最後回傳up跟down 互換了幾次再加一!因為是回傳node 數. 
int wiggleMaxLength(int* nums, int numsSize){
if (numsSize==1)
return 1;
bool isUp=(nums[1]> nums[0])? true:false;
int count=1, i;

for (i=1;i < numsSize;i++)
{
if (nums[i]!=nums[i-1])
{
isUp=(nums[i]> nums[i-1])? true:false;
break;
}
}
if (i==numsSize)
return count;

for (int i=1;i < numsSize;i++)
{
bool pre = isUp;
if (nums[i]> nums[i-1])
isUp=true;
else if (nums[i] < nums[i-1])
isUp=false;
else
continue;

if ((pre == true && !isUp) || (pre == false && isUp))
count++;
}
return count+1;
}

沒有留言:

張貼留言