Remove Duplicates from Sorted Array
給一串數字&指定一個值
需要拿掉所有的這個值
並向前排列......
結果把它想的太難了 囧
好笨 T_____T
void swap(int *a , int *b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int removeElement(int* nums, int numsSize, int val) {
int head,back,ret=numsSize;
for (head=0,back=numsSize-1;head<back;)
{
if(nums[back]==val)
{
back--;
ret--;
}
if(nums[head]!=val)
{
head++;
}
if (head>=back)
break;
if(nums[head]==val && nums[back]!=val)
{
swap(&nums[head],&nums[back]);
}
}
if(head == back && nums[head]==val)
ret--;
return ret;
}
其實只要這樣就好了:
int removeElement(int* nums, int numsSize, int val) {
int i,index=0;
for(i=0;i<numsSize;i++)
{
if(nums[i]!=val)
nums[index++] = nums[i];
}
return index;
}
沒有留言:
張貼留言