描述

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.

示例

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

算法分析

难度:低

分析:给定数组和指定一个目标值,从数组中移除所有跟目标值相等的元素,返回最终元素的长度,注意不要另外分配内存空间。

思路:题目很简单,直接遍历数组元素,判断当前元素是否跟目标值相等,如果不相等,证明当前元素应该留在数组中,有效数组长度自增1,否则为无效元素,因为只需返回有效数组长度,所以不用删除元素,跳过此循环即可。

代码示例(C#)

public int RemoveElement(int[] nums, int val)
{
int i = 0;
for (int j = 0; j < nums.Length; j++)
{
//如果不相等,有效长度自增1
if (nums[j] != val)
{
nums[i] = nums[j];
i++;
}
}
return i;
}

复杂度

  • 时间复杂度O (n).
  • 空间复杂度O (1).

附录

最新文章

  1. EF查询之性能优化技巧
  2. (分享)多功能 PDF转换器v3.0版本
  3. SlipHover,能感知鼠标方向的图片遮罩效果jQuery插件
  4. JavaScript Patterns 5.5 Sandbox Pattern
  5. PacBio全基因组测序和组装
  6. JSON API in Javascript
  7. 自定义控件(视图)2期笔记05:自定义控件之继承自View(滑动开关)
  8. JAVA classpath, 纠正我一直以来错误的认知
  9. BufferedReader的ready与readLine使用,以及Premature EOF异常
  10. C# 笔试题,看你会几道题
  11. docker certificates
  12. js原生设计模式——9外观模式封装
  13. tyvj4877 组合数
  14. [LeetCode] Random Flip Matrix 随机翻转矩阵
  15. Dear ImGUI 使用指南
  16. EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用
  17. 7_linux用户及权限(2)和管理
  18. DTO的问题
  19. mysql 命令行 备份 恢复数据
  20. python(五)——运算符

热门文章

  1. MSIL实用指南-加载bool、sbyte、byte、char、short等值
  2. Lintcode249 Count of Smaller Number before itself solution 题解
  3. NYOJ 题目12喷水装置(二)
  4. ServiceFabric极简文档-0. ServiceFabric简介
  5. C#判断某个类是否派生某个类或是否实现了某个接口
  6. 格式化JSON数据
  7. Mycat 分片规则详解--枚举分片
  8. 笔记:I/O流-对象序列化
  9. gulp工程化工具
  10. 基于hi-nginx的web开发(python篇)——动态路由和请求方法