每天一道LeetCode-----删除序列中指定元素,将满足要求的元素移动到前面
Move Zeroes
原题链接Move Zeroes
意思是给定一个数组,将所有的0都移到后面,不能改变非0元素的相对顺序
把非0元素移到前面,后面补零即可,比较简单
class Solution {
public:void moveZeroes(vector<int>& nums) {if(nums.size() == 0)return;/* 记录上一个为0的位置,把下一次遇到的非0元素放到这个位置,然后后移一位,继续寻找非0元素 */int prv_idx = 0;for(auto n : nums){if(n != 0)nums[prv_idx++] = n;}/* prv_idx此时的值就是非0元素的个数,把剩下的位置都补0 */for(int i = prv_idx; i < nums.size(); ++i)nums[i] = 0;}
};
Remove Element
原题链接Remove Element
意思是给定数组,将所有不为给定数值的元素移到前面,不能改变这些元素的相对顺序,返回与给定数值不相等的元素个数。和上面的一样,0换成参数而已,而且不需要补全…
class Solution {
public:int removeElement(vector<int>& nums, int val) {if(nums.size() == 0)return 0;int prv_idx = 0;for(auto n : nums){if(n != val)nums[prv_idx++] = n;}return prv_idx;}
};
Remove Duplicates from Sorted Array
原题链接Remove Duplicates from Sorted Array
意思是给定有序数组,相同的元素值留一个,基准值不固定,和上面的题有点不同,但思路一样
class Solution {
public:int removeDuplicates(vector<int>& nums) {if(nums.size() == 0)return 0;/* 记录上一个找到的元素的位置,现在要找的元素不能和上一个元素相同 */int prv_idx = 0;for(int i = 1; i < nums.size(); ++i){if(nums[i] != nums[prv_idx])nums[++prv_idx] = nums[i];}return prv_idx + 1;}
};
Remove Linked List Elements
原题链接Remove Linked List Elements
意思是给定链表,删除指定数值的节点,比较简单,遍历一遍即可
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {public:ListNode* removeElements(ListNode* head, int val) {if(!head)return nullptr;ListNode* header = new ListNode(-1);header->next = head;ListNode* cur = head;ListNode* prv = header;while(cur){if(cur->val == val)prv->next = cur->next;elseprv = cur; cur = cur->next;}ListNode* res = header->next;delete header;return res;}
};
每天一道LeetCode-----删除序列中指定元素,将满足要求的元素移动到前面相关推荐
- java删除javaee_JavaEE--集合--删除List中指定元素
一.Java 循环删除list中指定元素 增强for循环删除指定元素 @Test public void test(){ String[] strs={"a", "b&q ...
- js删除json中指定的元素
删除json下指定的元素 var obj = {'id':1, 'name':2}; delete obj.id; delete obj[id]; console.log(obj); // {'nam ...
- java移除json的元素_js实现删除json中指定的元素
删除json下指定的元素 var obj = {'id':1, 'name':2}; delete obj.id; delete obj[id]; console.log(obj); // {'nam ...
- JavaScript中如何删除数组中指定元素
js中删除数组中指定元素大致有以下三中方法. 1.使用for循环遍历,根据条件判断. for (let i = 0; i < array.length; i++) {if (array[i] = ...
- Python中删除set中指定元素元素不存在时不报错:s.discard()元素不存在时报错:s.remove()
[小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python中删除set中指定元素 元素不存在时不报错:s.discard() 元素不存在时 ...
- 【C++基础】删除vector中指定下标元素
[C++基础]删除vector中指定下标元素 vector<int> nums(n);1. 删除指定一个 i, auto it = nums.begin(); nums.erase(it+ ...
- jQuery删除数组中指定的元素
jQuery删除数组中指定的元素 方法:arr.splice($.inArray(元素, 数组), 删除的个数); var arr = ['a','b','c','d']; arr.splice($. ...
- Java 循环删除list中指定元素
Java 循环删除list中指定元素 1.for循环遍历删除指定元素 2.增强for循环删除指定元素 3.iterator删除指定元素 1.for循环遍历删除指定元素 List<String&g ...
- Java删除list中指定的元素的方法
删除list中指定元素的时候可能第一种想到的是使用for循坏再删除就好了,但是使用for循环删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素.比如当你 ...
最新文章
- python 之 pip、pypdf2 安装与卸载
- CV入门赛最全思路上分技巧汇总!
- python实现获取文件列表中每个文件关键字
- 【AJAX】反向Ajax第1部分:Comet介绍
- activesync对应的COM口
- django_rest_framework之GenericAPIView(三)
- SAP Spartacus Component-wrapper.directive.ts launch Component的三个参数
- 记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析
- Servlet的重定向和转发特点
- ES6知识点汇总(全)
- freecodecamp_如何充分利用freeCodeCamp
- 无心剑中译奥修《爱、婚姻与自由》
- 【英语学习】【Daily English】U10 Education L01 Is this certificate a must?
- 【kafka】Apache Kafka 0.11版本新功能简介
- 安卓Dialog弹出对话框全解:包含了AlertDialog,DialogFragment
- 运行yum update出现一下错误信息
- ubuntu和windows双系统启动顺序的修改
- 有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。 给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小
- oracle付权,oracle权限总结
- 无线充电组别国一队:浙江工业大学
热门文章
- 橙子云手机华为保修吗_华为云手机引关注!将替代传统手机?华为回应来了
- win10系统下载-靠谱推荐
- string (KMP+期望DP)
- 读书推荐:2017 第一期
- 两个实用的工具推荐:ResxManager和ValueInjecter
- 设置DataGrid自动生成列的宽度
- 【python数据挖掘课程】二十三.时间序列金融数据预测及Pandas库详解
- Python之十大经典排序算法的实现和原理
- Swift之UIView设置部分圆角与获取其所在ViewController
- 2017/Province_Java_A/2、9数算式