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

云阳网站建设百度经验官网

云阳网站建设,百度经验官网,全校网站建设与管理,专业网络营销目录 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外…

目录

27. 移除元素

26. 删除有序数组中的重复项

 88. 合并两个有序数组


27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

 【解法一】

class Solution {
public:int removeElement(vector<int>& nums, int val) {while(1){int pos = 0;for(;pos < nums.size(); pos++){if(nums[pos] == val)break;}if(pos == nums.size())break;for(int i = pos; i < nums.size()-1; i++)nums[i] = nums[i+1];nums.pop_back();    // 注意这里的pop_back()}return nums.size();}
};

 【解法二】计数覆盖

class Solution {
public:int removeElement(vector<int>& nums, int val) {int count = 0;for(int i = 0; i < nums.size(); i++){if(nums[i] == val)count++;elsenums[i-count] = nums[i];}for(int i = 0; i < count; i++)nums.pop_back();return nums.size();}
};

26. 删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。

将最终结果插入 nums 的前 k 个位置后返回 k 。

不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

【解法一】left代表左半部分,right代表右半部分

class Solution {
public:int removeDuplicates(vector<int>& nums) {int left = 0;int right = 1;while(right < nums.size()){if(nums[left] == nums[right])right++;elsenums[++left] = nums[right++];}return left+1;}
};

 88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/merge-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {int pos = m+n-1;while(m-1 >= 0 && n-1 >= 0){if(nums1[m-1] >= nums2[n-1]){nums1[pos--] = nums1[m-1];m--;}else{nums1[pos--] = nums2[n-1];n--;}}while(n-1>=0){nums1[pos--] = nums2[n-1];n--;}}
};

http://www.yidumall.com/news/25313.html

相关文章:

  • 网站域名登陆地址查询精准ip地址查询工具
  • 网站 色调免费建站网站一级
  • 专业企业建站公司上海推广服务
  • 网站空间买卖市场营销十大经典案例
  • 织梦网站tag怎么做seo搜索引擎优化价格
  • 性男女做视频观看网站seo 优化
  • 电子商务网站建设asp网站建设公司哪家好?
  • 浏览器无法访问wordpress报503互联网关键词优化
  • 兴义网站建设网络营销的推广方法有哪些
  • 网站不备案做优化考拉seo
  • 商贸网站建设搜索引擎排名
  • 做网站的公司深圳吉安seo招聘
  • 项目开发流程8个步骤流程图泉州百度seo公司
  • 设计网站页面特效怎么做如何建网站不花钱
  • app应用网站html5模板下载百度搜索数据统计
  • 做动态网站需要什么软件银川网页设计公司
  • wordpress 分类描述seo搜索优化 指数
  • 购物网站及app开发线下推广有哪几种渠道
  • 网站实现语言转换技术上该怎么做全网推广引流黑科技
  • 国家正规网站查询网站排名优化方法
  • 规划阿里巴巴网站怎么做必应搜索引擎下载
  • 网站主题类型站长之家app
  • 国家知识产权局专利检索与查询seo推广优化多少钱
  • 俄语网站都哪些上海百度推广方案
  • 上海 网站备案企业培训师资格证报考2022
  • 网站建设维护保密协议google浏览器网页版
  • 怎么做网站关键词搜索上海seo优化培训机构
  • 网站页脚信息培训班报名
  • 有可能点进病毒网站怎么做网络推广有几种方法
  • 贵阳专业做网站的公司买淘宝店铺多少钱一个