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

LeetCode -- Remove Element

题目描述:


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


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


就是把数组nums中的值为val的元素放在数组最后,返回新长度。


思路:
1.由于元素已有的顺序可以被改变,因此可以使用两个索引i和j进行两头找。j从后往前找值不为val的元素,i从前向后找值为val的元素,直到i与j相遇为止,交互nums[i]和nums[j]
2.然后继续移动i,直到nums[i]为val为止,此时i的位置即为新长度,返回i即可。






实现代码:


public class Solution {
    public int RemoveElement(int[] nums, int val) 
    {
        if(nums.Length == 0){
    		return 0;
    	}
    	
    	var i = 0;
    	var j = nums.Length - 1;
    	while(i < j){
    		while(i < j && nums[i] != val){
    			i ++;
    		}
    		while(i < j && nums[j] == val){
    			j --;
    		}
    		if(i < j){
    			var t = nums[i];
    			nums[i] = nums[j];
    			nums[j] = t;
    		}
    	}
    	
    	while(i < nums.Length && nums[i] != val){
    		i++;
    	}
    	return i;
    }
}


相关文章:

  • 刚做的H1N1猪流感分布图Demo
  • LeetCode -- Same Tree
  • 与辛鹏和王昕聊OPUG(开放流程社区)
  • LeetCode -- Search in Rotated Sorted Array II
  • 小议移动Widget
  • LeetCode -- Search in Rotated Sorted Array
  • LeetCode -- Binary Tree Postorder Traversal
  • 《3G移动增值业务的运营、定制与开发——BREW进阶与精通》开始连载
  • LeetCode -- Course Schedule
  • 七、基本I/O接口电路设计实验
  • LeetCode -- Intersection of Two Linked Lists
  • 红帽的top命令不正确
  • LeetCode -- Minimum Window Substring
  • 70后所面临的软件技术学习困境
  • LeetCode -- Remove Duplicates from Sorted List II
  • 自己简单写的 事件订阅机制
  • CSS魔法堂:Absolute Positioning就这个样
  • es6
  • express + mock 让前后台并行开发
  • httpie使用详解
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Promise初体验
  • SQL 难点解决:记录的引用
  • v-if和v-for连用出现的问题
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 力扣(LeetCode)357
  • 你不可错过的前端面试题(一)
  • 爬虫模拟登陆 SegmentFault
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 物联网链路协议
  • 小程序开发之路(一)
  • 一个SAP顾问在美国的这些年
  • 优秀架构师必须掌握的架构思维
  • hi-nginx-1.3.4编译安装
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # include “ “ 和 # include < >两者的区别
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (4) PIVOT 和 UPIVOT 的使用
  • (a /b)*c的值
  • (Oracle)SQL优化技巧(一):分页查询
  • (笔试题)分解质因式
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)memcache、redis缓存
  • (转)VC++中ondraw在什么时候调用的
  • (转)创业家杂志:UCWEB天使第一步
  • (转)负载均衡,回话保持,cookie
  • ./configure,make,make install的作用(转)