例如:数组:4,3,0,1,5 {假设所有数字都大于等于0。数组中的每个元素对应一个数字(即数组中的每个元素都介于0和9之间)。}
在上述数组中,最大的数字是:5430 {使用来自数组的5、4、3和0位数字}
我的方法:
要想被3整除,需要数字的总和被3整除。 所以,
1.步骤1:从数组中删除所有零。 2.步骤2:这些零将出现在末尾。{因为它们不影响总和,并且我们必须找到最大的数字} 3.步骤3:找到数组元素的子集(不包括零),使得数字的数量是最大的,数字的总和也是最大的,并且数字总和可以被3整除。 4.STEP-4:所需的数字由上面找到的集合中的数字按降序排列组成。
因此,主要步骤是STEP-3,即如何找到子集,使其包含MAX可能数量的元素,使它们的总和是MAX并且可被3整除。
我在考虑,也许可以通过贪心选择来完成Step-3,即取所有元素并继续删除集合中最小的元素,直到总和能够被3整除。
但我不确定这种贪心选择是否可行。
请告诉我我的方法是否正确。 如果是,请建议如何完成步骤3?
此外,请提出任何可能/有效的算法。
在上述数组中,最大的数字是:5430 {使用来自数组的5、4、3和0位数字}
我的方法:
要想被3整除,需要数字的总和被3整除。 所以,
1.步骤1:从数组中删除所有零。 2.步骤2:这些零将出现在末尾。{因为它们不影响总和,并且我们必须找到最大的数字} 3.步骤3:找到数组元素的子集(不包括零),使得数字的数量是最大的,数字的总和也是最大的,并且数字总和可以被3整除。 4.STEP-4:所需的数字由上面找到的集合中的数字按降序排列组成。
因此,主要步骤是STEP-3,即如何找到子集,使其包含MAX可能数量的元素,使它们的总和是MAX并且可被3整除。
我在考虑,也许可以通过贪心选择来完成Step-3,即取所有元素并继续删除集合中最小的元素,直到总和能够被3整除。
但我不确定这种贪心选择是否可行。
请告诉我我的方法是否正确。 如果是,请建议如何完成步骤3?
此外,请提出任何可能/有效的算法。