problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::minimum_operations_to_make_the_array_alternating::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static int minimumOperations (vector< int > &nums)
 

详细描述

在文件 leetcode.h1106 行定义.

成员函数说明

◆ minimumOperations()

int leetcode::minimum_operations_to_make_the_array_alternating::Solution::minimumOperations ( vector< int > &  nums)
static

在文件 leetcode.cpp2804 行定义.

2804 {
2805 int a_sum = 0;
2806 int b_sum = 0;
2807 auto a = unordered_map<int, int>();
2808 auto b = unordered_map<int, int>();
2809 for(int i = 0; i < nums.size(); i++) {
2810 if(i % 2 == 0) {
2811 a[nums[i]]++;
2812 a_sum++;
2813 } else {
2814 b[nums[i]]++;
2815 b_sum++;
2816 }
2817 }
2818 int max_num = 0;
2819 int maximum = 0;
2820 int ans1 = 0;
2821 for(const auto i: a) {
2822 if(maximum < i.second) {
2823 maximum = i.second;
2824 max_num = i.first;
2825 }
2826 }
2827 ans1 += a_sum - maximum;
2828 maximum = 0;
2829 for(const auto i: b) {
2830 if(i.first != max_num && maximum < i.second) {
2831 maximum = i.second;
2832 }
2833 }
2834 ans1 += b_sum - maximum;
2835
2836 int ans2 = 0;
2837 max_num = 0;
2838 maximum = 0;
2839 for(const auto i: b) {
2840 if(maximum < i.second) {
2841 maximum = i.second;
2842 max_num = i.first;
2843 }
2844 }
2845 ans2 += b_sum - maximum;
2846 maximum = 0;
2847 for(const auto i: a) {
2848 if(i.first != max_num && maximum < i.second) {
2849 maximum = i.second;
2850 }
2851 }
2852 ans2 += a_sum - maximum;
2853 return min(ans1, ans2);
2854 }

被这些函数引用 leetcode::minimum_operations_to_make_the_array_alternating::TEST().


该类的文档由以下文件生成: