LeetCode027 Remove Element

详细见:leetcode.com/problems/remove-element/

Java Solution: github

package leetcode;

public class P027_RemoveElement {
	public static void main(String[] args) {
		int[] nums = {1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3};
		int ans = new Solution1().removeElement(nums, 3);
		for (int i = 0; i != ans; i ++)
			System.out.println(nums[i]);
	}
	/*
	 * 	1 ms
	 * 	3.96%
	 */
	static class Solution1 {
		public int removeElement(int[] nums, int val) {
	        if (nums == null || nums.length == 0)
	        	return 0;
	        int step = 0;
	        for (int i = 0; i != nums.length; i ++) {
	        	if (nums[i] == val) {
	        		step ++;
	        	} else {
	        		nums[i - step] = nums[i];
	        	}
	        }
	        return nums.length - step;
	    }
	}
}


C Solution: github

/*
    url: leetcode.com/problems/remove-element/
    6ms 2.27%
*/

#include <stdio.h>
#include <stdlib.h>

int removeElement(int* nums, int numsSize, int val) {
    int i = 0, j = 0, count = 0;
    for (j = 0; j < numsSize; j ++)
        if (*(nums + j) != val) {
            *(nums + (i ++)) = *(nums + j);
            count ++;
        }
    return count;
}

void print_array(int * nums, int numsSize) {
    int i = 0;
    for (i = 0; i < numsSize; i ++)
        printf("%d ", *(nums + i));
    printf("\r\n");
}

int main() {
    int nums[] = {3,2,2,3};
    int numsSize = 4;
    int val = 3;
    print_array(nums, removeElement(nums, numsSize, val));
}

Python Solution: github

#coding=utf-8

'''
    url: leetcode.com/problems/remove-element/
    @author:     zxwtry
    @email:      zxwtry@qq.com
    @date:       2017年3月31日
    @details:    Solution: 55ms 34.34%
'''

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        i = 0
        for j in range(len(nums)):
            if nums[j] != val:
                nums[i] = nums[j]
                i += 1
        return i

if __name__ == "__main__":
    nums = [3, 2, 2, 3]
    v = 3
    sol = Solution()
    n = sol.removeElement(nums, v)
    val = []
    for i in range(n):
        val.append(nums[i])
    print(" %d" * n % tuple(val))





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值