Lang:G++
Edit12345678910111213141516171819202122232425262728293031//1、0张卡,求每段的最大长度(end-start-1)//2、1张卡,每次填补一个,求每段的最大长度//3、2张卡,每次填补连续的两个,求每段的最大长度#include<iostream>#include<vector>using namespace std;const int MAX_NUM = 100;inline int diff(int start, int end){return end - start -1;}int max_strike(vector<int> arr, size_t card_num){if(card_num > arr.size()) return MAX_NUM;//卡数多于孔数int start = 0, end = 0, max_len = 0;size_t index = 0;while(index < arr.size()){if(index >= arr.size() - card_num) end = MAX_NUM;else end = arr[index+card_num];int tmp = diff(start, end);max_len = max_len > tmp ? max_len : tmp;start = arr[index++];}return max_len;}int main(){