算法训练——摆动序列
Posted hqx-curiosity
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法训练——摆动序列相关的知识,希望对你有一定的参考价值。
//摆动序列 #include<stdio.h> int k,num; int data[22],book[22]; void dfs(int t){ if(t>1){ if(t==2) num++; else{ int flag = 1; for(int i=t-1;i>=2;i--){ //条件4 if((data[i-1]-data[i-2])*(data[i] - data[i-2]) >=0 ){ flag = 0; break; } if(flag == 1) num++; else return; } } } for(int i=1;i<=k;i++){ if(book[i] == 0){ data[t] = i; //将1——k保存在data[]数组中 book[i] = 1; dfs(t+1); book[i] = 0; } } return; } int main(){ //输入k num=0; scanf("%d",&k); dfs(0); printf("%d",num); return 0; }
以上是关于算法训练——摆动序列的主要内容,如果未能解决你的问题,请参考以下文章