그래서 배열에 다른 배열의 요소가 있지만 같은 순서로 포함되어 있는지 확인해야합니다. 두 배열이 정렬되고 요소를 복제 할 수 있습니다.배열이 다른 배열에 있지만 순서와 요소가 반복되는지 확인하십시오.
나는 이런 식으로 생각해 냈지만, 상황이 너무 복잡하다. 예를 들어
public static int function(int[] A, int[] B)
{
int indexB = 0;
int matched = 0;
for(int j=0;j<A.Count();j++)
{
indexB=0;
matched=0;
for (int i = j; i < B.Count()+j; i++)
{
if (A[i] == B[indexB])
{
matched++;
indexB++;
}
else
{
break;
}
}
if (matched == B.Count())
{
return 1;
}
}
return 0;
}
:
int[] A = { 1, 2, 2, 2, 3, 4, 4, 4, 5, 8, 10 };
int[] B = { 2, 2, 3, 4, 4, 4};
상기 B는 A 어레이 배열에 포함된다. 복잡하게 도와주세요.
내 대답이 철회되었습니다. 'B '의 각 요소는'A'에서와 같이 최소한 ("B"에서) "다중성"을 가져야한다는 것이 맞습니까? 예를 들어'A = {2}'인 경우'B = {2, 2}'가 "좋은"부분 집합이 아니라는 것이 맞습니까? 왜'int'를 반환하고'bool'을 반환하는 대신'1'과'0'을 사용합니까? –
첫 번째 루프의 경우 범위를 * A.Count-B.Count *로 제한하십시오. 최적화가 필요합니까 (예 : A와 B가 큰 경우)? – Graffito