给我们一个整数数组。目标是在执行给定操作后找到数组中等于的最大数-
选择两个元素a [i]和a [j],使i!= j和
递增a [i]并递减a [j](a [i] ++,a [j]-)
我们将取数组的总和除以元素数。如果N是数组的大小,则
如果sum可被N整除,则相等的数字也将为N,否则相等的数字将为N-1。
Arr[]= { 1,2,3 }
输出结果
最大数目等于 3
说明-第一步Arr [] = {2,2,2}递增1递减3元素之和为1 + 2 + 3 = 6,6%3 == 0,因此等于3
Arr[]= { 1,2,4 }
输出结果
最大数目等于 2
说明-第一步Arr [] = {1,3,3}递增2并递减4元素的总和为1 + 2 + 4 = 7,7%3 == 1,因此相等的数字= 3-1 = 2
整数数组Arr []用于存储整数。
整数“大小”存储数组的长度。
函数maxEqual(int arr [],int n)接受一个数组,将其大小作为输入,并在应用给定操作后返回该数组中存在的最大等号数。
首先,我们将计算数组元素的总和并存储在“ sum”中
现在,按大小n(sum%n == 0)检查总和的可除性。
如果可整,则返回n
否则返回n-1作为结果。
#include <bits/stdc++.h> using namespace std; int maxEqual(int arr[], int n){ int sum = 0; for (int i = 0; i < n; i++){ sum += arr[i]; } if (sum%n==0){ return n; } return n-1; } int main(){ int Arr[] = { 1, 4, 1, 2}; //数组的大小 int size =4; cout <<" 最大数目等于"<< maxEqual(Arr,size); return 0; }
输出结果
Maximum count of equal numbers: 4
本文向大家介绍在C ++中执行给定操作后的最终字符串,包括了在C ++中执行给定操作后的最终字符串的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将解决以下问题。 给定仅包含字符a和b的字符串,我们的任务是从字符串中删除子字符串ab。并打印剩余的字符串。 在这里,这个想法很容易解决。每个只有a和b的字符串最后都会缩小为a或b。 让我们看看解决问题的步骤。 初始化字符串。 为a和b初始化两
给你一个整数列表,长度为偶数。考虑这样一个操作,您在nums中选择任意数字,并用[1,max(nums)]之间的值更新它。返回所需的操作数,使得对于每个i,nums[i]+nums[n-1-i]等于相同的数。问题可以贪婪地解决。 注意:n是数组的大小,max(nums)是nums中的最大元素。 null 设i=0,nums[0]+nums[6-1-0]=4。 i=1,nums[1]+nums[6-
给定一个正整数数组,返回最大和。 只有一个限制:如果你选择两个连续的元素,你不允许在你的总数中添加任何后续的元素,你的总和是到那个点为止的累积量。你的目标是最大化你的总和。 输入:[1,4,2,10] 产出:14 输入:[1,4,5,3] 产出:9 我在第一个测试案例中一直失败。我尝试了DP解决方案,但产生了相同的结果?任何帮助都将不胜感激。
本文向大家介绍C ++中数组中存在的最大连续数,包括了C ++中数组中存在的最大连续数的使用技巧和注意事项,需要的朋友参考一下 给定一个正整数数组。目的是找到其中存在的最大连续数。首先,我们将对数组进行排序,然后比较相邻元素arr [j] == arr [i] +1(j = i + 1),如果差为1,则递增计数,索引i ++,j ++,否则更改计数= 1 。将到目前为止找到的最大计数存储在maxc
本文向大家介绍C ++中的最大相等频率,包括了C ++中的最大相等频率的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个正整数的数组num,我们必须返回给定数组num的数组前缀的最大可能长度,这样就可以从该前缀中精确删除一个元素,以便其中出现的每个数字都会具有相同的频率。如果没有剩余元素,则删除一个元素后,仍会认为每个出现的数字具有相同的频率。 因此,如果输入类似于[3,3,2,2,6,4,