leetcode c言語


LeetCode-c言語-Remove Element(第27題)
配列numsと値valを指定すると、valに等しいすべての数値の要素をその場で除去し、除去後の配列の新しい長さを返す必要があります.余分な配列空間を使用しないでください.入力配列をその場で変更し、O(1)余分な空間を使用する条件で完了する必要があります.要素の順序は変更できます.配列の中で新しい長さの後ろを超える要素を考慮する必要はありません.例1:nums=[3,2,2,3]、val=3が与えられ、関数は新しい長さ2を返し、numsの最初の2つの要素は2である.配列の中で新しい長さの後ろを超える要素を考慮する必要はありません.例2:nums=[0,1,2,2,3,0,4,2]、val=2が与えられ、関数は新しい長さ5を返し、numsの最初の5つの要素は0,1,3,0,4である.この5つの要素は任意の順序で使用できます.配列の中で新しい長さの後ろを超える要素を考慮する必要はありません.説明:なぜ返される数値は整数ですが、出力される答えは配列ですか.入力配列は「参照」で渡されます.これは、関数で入力配列を変更することが呼び出し元に表示されることを意味します.内部操作は以下のように想像できます://numsは「参照」で伝達されます.すなわち、int len=removeElement(nums,val);//関数に入力配列を変更すると、呼び出し元に表示されます.//関数が返す長さに基づいて、配列内の長さ範囲内のすべての要素が印刷されます.for (int i = 0; i < len; i++) { print(nums[i]); }
int removeElement(int* nums, int numsSize, int val) {
int i;
int index=0;
for(i=0;i