数组的双调性定义如下:
根据数组元素找到数组的双调性为:
Bitonicity = 0 , initially arr[0]
i from 0 to n
Bitonicity = Bitonicity+1 ; if arr[i] > arr[i-1]
Bitonicity = Bitonicity-1 ; if arr[i] < arr[i-1]
Bitonicity = Bitonicity ; if arr[i] = arr[i-1]
登录后复制
示例
查找数组的双调性的代码中,我们使用了一个名为bitonicity的变量,它根据数组的当前元素和前一个元素的比较而改变。上述逻辑更新了数组的双调性,并且最终的双调性可以在数组的末尾找到。
#include
using namespace std;
int main() {
int arr[] = { 1, 2, 4, 5, 4, 3 };
int n = sizeof(arr) / sizeof(arr[0]); int Bitonicity = 0;
for (int i = 1; i arr[i - 1])
Bitonicity++;
else if (arr[i] < arr[i - 1]) Bitonicity--;
}
cout