个人的思路,时间复杂度O(n) int main(int argc, char const *argv[]) { int N; cin >> N; while(N--) { int nums; cin >> nums; vector<int> cards(nums); vector<int> l2r(nums, 0); vector<int> r2l(nums, 0); for(int i = 0; i < nums; ++i) { cin >> cards[i]; } int count = 0; for(int i = 0; i < nums; ++i) { l2r[i] = count; if(cards[i] == 0) count = 0; else count += 1; } count = 0; for(int i = nums - 1; i >= 0; --i) { r2l[i] = count; if(cards[i] == 0) count = 0; else count += 1; } int max_num = 0; for(int i = 0; i < nums; ++i) { max_num = max(max_num, l2r[i] + r2l[i]); } std::cout << max_num << '\n'; } return 0; }
点赞 评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
牛客网
牛客企业服务