zoukankan      html  css  js  c++  java
  • leetCode- Remove Element

    Given an array and a value, remove all instances of that value in-place and return the new length.

    Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

    The order of elements can be changed. It doesn't matter what you leave beyond the new length.

    Example:

    Given nums = [3,2,2,3], val = 3,
    
    Your function should return length = 2, with the first two elements of nums being 2.

    我的版本(适合删除元素很多的情况):
    class Solution {
    public int removeElement(int[] nums, int val) {
    int count=0;
    
    for(int i=0;i<nums.length;i++){
    if(nums[i]!=val){
    nums[count++] = nums[i];
    }
    }
    return count;
    }
    }

    其他版本(适合删除元素很少的情况):

    public int removeElement(int[] nums, int val) {
        int i = 0;
        int n = nums.length;
        while (i < n) {
            if (nums[i] == val) {
                nums[i] = nums[n - 1];
                // reduce array size by one
                n--;
            } else {
                i++;
            }
        }
        return n;
    }
  • 相关阅读:
    audio_policy.conf说明(翻译)
    Qt
    linux C
    Linux C
    Linux C
    Qt
    Qt
    JSON
    JSON
    Qt
  • 原文地址:https://www.cnblogs.com/kevincong/p/7802602.html
Copyright © 2011-2022 走看看