牛牛浇树-差分
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回m天后高度为奇数的树的数量 * @param n int整型 * @param m int整型 * @param l int整型vector * @param r int整型vector * @return int整型 */ int oddnumber(int n, int m, vector<int>& l, vector<int>& r) { // write code here vector<int> mp(n + 2, 0); for (int i = 0; i < m; ++i) { mp[l[i]]++; mp[r[i]+1]--; } int odd = 0, even = 0; int cur = 0; for (int i = 1; i <= n; ++i) { cur += mp[i]; if (cur & 1) { ++odd; } else { ++even; } } if (m & 1) { return even; } return odd; } };
#牛客编程巅峰赛##题解#