classSolution { public: intminimumOperations(vector<int>& nums){ vector<vector<int>> cnt(3); int n = nums.size(); for (int i = 0; i < n; i++) { cnt[nums[i] - 1].emplace_back(i); } int res = INT_MAX; for (int i = 0; i <= n; i++) { for (int j = i; j <= n; j++) { int tot = 0; for (auto v : cnt[0]) { if (v >= i) tot++; } for (auto v : cnt[1]) { if (!(v >= i && v < j)) tot++; } for (auto v : cnt[2]) { if (v < j) tot++; } res = min(res, tot); } } return res; } };
classSolution { public: intminimumOperations(vector<int>& nums){ vector<vector<int>> cnt(3); int n = nums.size(); for (int i = 0; i < n; i++) { cnt[nums[i] - 1].emplace_back(i); } for (int i = 0; i < 3; i++) { sort(cnt[i].begin(), cnt[i].end()); } int res = INT_MAX; for (int i = 0; i <= n; i++) { for (int j = i; j <= n; j++) { int tot = 0; /* 第一个分组中大于等于 i 的元素 */ tot += cnt[0].end() - lower_bound(cnt[0].begin(), cnt[0].end(), i); /* 第二个分组中小于 i 或者大于等于 j 的元素 */ tot += cnt[1].end() - lower_bound(cnt[1].begin(), cnt[1].end(), j); tot += lower_bound(cnt[1].begin(), cnt[1].end(), i) - cnt[1].begin(); /* 第三个分组中小于 j 的元素 */ tot += lower_bound(cnt[2].begin(), cnt[2].end(), j) - cnt[2].begin(); res = min(res, tot); } } return res; } };
classSolution { public: intminimumOperations(vector<int>& nums){ vector<int> arr; for (int i = 0; i < nums.size(); i++) { int x = upper_bound(arr.begin(), arr.end(), nums[i]) - arr.begin(); if (x == arr.size()) { arr.emplace_back(nums[i]); } else { arr[x] = nums[i]; } } return nums.size() - arr.size(); } };
8013. 范围中美丽整数的数目
给你正整数 low ,high 和 k 。
如果一个数满足以下两个条件,那么它是 美丽的 :
偶数数位的数目与奇数数位的数目相同。
这个整数可以被 k 整除。
请你返回范围 [low, high] 中美丽整数的数目。
示例 1:
输入:low = 10, high = 20, k = 3 输出:2 解释:给定范围中有 2 个美丽数字:[12,18] - 12 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 3 整除。 - 18 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 3 整除。 以下是一些不是美丽整数的例子: - 16 不是美丽整数,因为它不能被 k = 3 整除。 - 15 不是美丽整数,因为它的奇数数位和偶数数位的数目不相等。 给定范围内总共有 2 个美丽整数。
示例 2:
输入:low = 1, high = 10, k = 1 输出:1 解释:给定范围中有 1 个美丽数字:[10] - 10 是美丽整数,因为它有 1 个奇数数位和 1 个偶数数位,而且可以被 k = 1 整除。 给定范围内总共有 1 个美丽整数。
示例 3:
输入:low = 5, high = 5, k = 2 输出:0 解释:给定范围中有 0 个美丽数字。 - 5 不是美丽整数,因为它的奇数数位和偶数数位的数目不相等。