当前位置: 首页 > news >正文

Leetcode 27 Remove Element

题目介绍

要求输入:给定数组nums[],数字val
要求输出:数组中不等于val的元素个数n,同时要求不等于数字val的n个元素放置在数组的前n个位置(不要求顺序)
例子
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.

方法一

这道题只关注最后数组的前n个元素。所以很容易想到我们遍历整个数组,每当遇到不等于val的值的时候,我们将计数的i值加一。同时我们将这个元素赋值给nums[i],这样就可以保证,不等于val的n个元素完美占据数组的前n个位置。
public int removeElement(int[] nums, int val) {
    int i = 0;
    for (int j = 0; j < nums.length; j++) {
        if (nums[j] != val) {
            nums[i] = nums[j];
            i++;
        }
    }
    return i;
}

方法二

当我们遇到和等于val值的元素的时候,我们将数组尾端的元素和此元素交换位置。之后减少一位遍历长度。同时在下次遍历中,我们会重新检查新swap过来的元素。

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;
}

相关文章:

  • Powershell统计exchange接收连接器的完整信息
  • apiCloud中openFrameGroup传参
  • [开源]KJFramework.Message 高性能二进制消息框架 -- 对于数组的极致性优化
  • 有关数组的相关知识~~
  • 【QA5】【mysql问题】ERROR 1045 (28000): Access denied for...
  • 12.22 php-fpm慢执行日志
  • SIGTERM SIGINT
  • 3分钟实操机器学习原理,这里有一个不挑人的模型 | 包教包会
  • nginx负载均衡与反向代理配置文件分析实例
  • 第 26 章 MySQL
  • 如何确保SWF文件Hash值相同
  • 2017JavaScript框架战报——React分战场
  • 整理Java基础知识--Character类
  • 网上购物系统(Task005)——通用数据库访问函数集SqlHelper类
  • mysql 密码重置
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【EOS】Cleos基础
  • Android 架构优化~MVP 架构改造
  • Angular Elements 及其运作原理
  • Hexo+码云+git快速搭建免费的静态Blog
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript DOM 10 - 滚动
  • JavaScript服务器推送技术之 WebSocket
  • js ES6 求数组的交集,并集,还有差集
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Magento 1.x 中文订单打印乱码
  • php的插入排序,通过双层for循环
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue-cli3搭建项目
  • 从零开始的无人驾驶 1
  • 构建工具 - 收藏集 - 掘金
  • 前嗅ForeSpider教程:创建模板
  • 删除表内多余的重复数据
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一文看透浏览器架构
  • 因为阿里,他们成了“杭漂”
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 怎么将电脑中的声音录制成WAV格式
  • nb
  • No resource identifier found for attribute,RxJava之zip操作符
  • gunicorn工作原理
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​ubuntu下安装kvm虚拟机
  • $jQuery 重写Alert样式方法
  • (2)nginx 安装、启停
  • (C#)一个最简单的链表类
  • (C++17) optional的使用
  • (安卓)跳转应用市场APP详情页的方式
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (一)Neo4j下载安装以及初次使用
  • (一)基于IDEA的JAVA基础1
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)德国人的记事本