주제 설명 :
배열 nums 및 값 발을 감안할 때, 당신은 제거 후 배열의 새 길이를 모두 같은 값을 제거하는 요소를 배치해야 발하고 돌아갑니다.
배열을위한 여분의 공간을 사용하지 마십시오, 당신은 장소에 입력 배열을 수정하고 사용 O (1) 여분의 공간의 조건을 완료해야합니다.
예 1 :
주어 nums = [3,2,2,3], 발 = 3
기능 (2)의 새로운 길이를 반환해야하고, 제 1 두 요소 nums 2이다.
예 2 :
주어 nums = [0,1,2,2,3,0,4,2] = 2- 브로
새로운 기능은 길이 5 처음 다섯 nums 요소를 반환해야 0,1,3,0,4
이 다섯 개 가지 요소는 임의의 순서가 될 수 있습니다
당신은 새 길이의 길이의 뒷면을 넘어 배열 요소를 고려해야 할 필요가 없습니다.
int removeElement(int arr[],int len,int val)
{
int count = 0;
for (int i = 0; i < len; i++)
{
if (arr[i] != val)
{
arr[count++] = arr[i];
}
}
return count;
}
int main()
{
int arr[] = {0,1,2,2,3,0,4,2};
int count = removeElement(arr, sizeof(arr)/sizeof(arr[0]), 3);
printf("%d\n",count);
for (int i = 0; i < count; i++)
{
printf("%d\t",arr[i]);
}
printf("\n");
system("pause");
return 0;
}