给出一个数组= [a,b,c,...]。
您必须找到[a * k1 + b * k2 + c * k3 + ...]%M 。其中 k1,k2,k3 ..是任何需要的非负整数 可以选择。 M是已知的。
语言-C ++
示例
输入
arr=[7, 3, 2].
M=10
输出
9
说明
You can choose to make the array [7 * 1 + 3 * 0 + 2 * 1 ] % 10.
Here k1 = 1, k2 = 0, k3 = 1 .
So you get 9 as the answer(max value).
编辑-
我正在尝试使用 C ++ 解决方案。
我的尝试
我知道ans的范围是0到M-1。但是我不知道如何进行。
修改
我的尝试
int ans=arr[0];
for(int i=1; i<arr.length(); i++){
ans=max((ans+arr[i])%M,ans);
}
return ans;
在这里,我从左到右遍历数组,以更新ans。它是否正确?