如何用c#解决匹配销售问题?

如何用c#解决匹配销售问题?,c#,C#,我很难使用c#而不使用列表集合解决按匹配销售问题 *亚历克斯在一家服装店工作。有一大堆袜子必须按颜色搭配出售。给定一个表示每个袜子颜色的整数数组,确定有多少双颜色匹配的袜子 例如,有N=7只袜子的颜色ar=[1,2,1,2,1,3,2]有一对颜色1和一对颜色2。剩下三只袜子,每种颜色一只。成对数为2.*您可以尝试此代码 static int sockMerchant(int n, int[] ar) { int matchingPairsCount= 0 ; int[]

我很难使用c#而不使用列表集合解决按匹配销售问题

*亚历克斯在一家服装店工作。有一大堆袜子必须按颜色搭配出售。给定一个表示每个袜子颜色的整数数组,确定有多少双颜色匹配的袜子

例如,有N=7只袜子的颜色ar=[1,2,1,2,1,3,2]有一对颜色1和一对颜色2。剩下三只袜子,每种颜色一只。成对数为2.*

您可以尝试此代码

   static int sockMerchant(int n, int[] ar) {
    int matchingPairsCount= 0 ; 
     int[] arr =new int[n];
     var ix=0;
for (int i = 0 ; i< ar.Length ; i++)
{
     int countPairs = 0 ;
  for(int j = 0 ;j< ar.Length ;j++)
  {
     
      if(ar[i] == ar[j] && i<j&& (!arr.Contains(i)|| i==0))
      {
          arr[ix]=j;
          ix++;
            matchingPairs = matchingPairs + 1 ;
            break;
      }
  }

}
return  matchingPairsCount;
}
static int(int n,int[]ar){
int matchingPairsCount=0;
int[]arr=新的int[n];
var ix=0;
对于(int i=0;i如果(ar[i]==ar[j]&&i您可以使用以下代码使用它

var ar = new int[] { 1,2,1,2,1,3,2 };
ar.GroupBy( g => g ).Sum( g => Math.Floor( g.Count() / 2.0 ) );

它首先对数组中的所有项进行分组,然后对所有对进行汇总。您可以尝试使用它

效果很好谢谢Jassar这是一个相当昂贵的算法:)请添加您迄今为止尝试过的内容。我们不是来帮您做家庭作业的。是的,但不是完全做到这一点。这很有效,但我无法使用Grouping@Mark,也许是一本
字典