ここで間違っていることを理解できません。私のアルゴリズムの欠陥は、合計がkで割れる配列内のすべてのペアを見つけることができますか?
コード:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution
{
static void Main(String[] args)
{
string[] lineParts = Console.ReadLine().Split(' ');
int k = Convert.ToInt32(lineParts[1]);
int[] arr = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse);
var indices = Enumerable.Range(0, arr.Length - 1);
int pairsDivideK = (from i in indices
from j in indices
where i < j && ((arr[i] + arr[j]) % k == 0)
select 1).ToList().Count/2;
Console.WriteLine(pairsDivideK);
}
}
入力:
6 3
1 3 2 6 1 2
予想される出力:
5
マイ出力:
1
は '1).ToList()/カウントを選択2'なぜあなたはこれをやっていますか? – user3185569
@ user3185569私はリピートを説明するために2で割っています – user6048670
そしてなぜ私はjよりも小さくすべきですか? linesPartsの最初の値が6でない理由は何ですか?なぜあなたはそれぞれのステップをやっているのですか? – user3185569