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;
    }
  • 相关阅读:
    docker入门
    初级排序算法1-定义排序规则
    Lambda入门
    mac编辑器vim美化
    SSM搭建
    Memcached安装教程及使用
    lombok
    立个Flag-第一天
    等高线自适应分割
    wpf软件模拟鼠标键盘操作
  • 原文地址:https://www.cnblogs.com/kevincong/p/7802602.html
Copyright © 2011-2022 走看看