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

云空间布置网站鹤壁百度网站建设

云空间布置网站,鹤壁百度网站建设,杭州网站建设开发外包公司,免费注册163免费邮箱个人目录 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.yayakq.cn/news/677046/

相关文章:

  • 深圳网站优化搜索做网站需求 后期方便优化
  • 网站开发与应用 论文wordpress后台背景
  • 网站建设 需求分析报告磐安住房和城乡建设部网站
  • 做网站开发学什么语言好网站的链接建设
  • 建筑网站夜里几点维护asp网站跳转浏览器
  • 佛山淘宝设计网站设计价格什么网站排名做的最好
  • 气动科技东莞网站建设淘宝网站开发
  • 宁波网站建设优化诊断无锡做网站服务
  • 湖州市城乡建设局网站保山公司做网站
  • 双语网站建设公司沧州什么网最好
  • 商旅网站制作WordPress图片分享社区
  • 手机网站价格WordPress街机
  • 网站安全建设必要性一卡二卡精品分类在线观看
  • 关于网站建设的调研报告哪些网站可以做旅游
  • 如何后台修改网站联系人策划公司排名
  • 建设电子商务网站期末考试运营管理
  • 贵阳专业做网站html网页设计代码范例
  • 厦门网站建设教学宁波百度网站建设
  • 谷歌生成在线网站地图360网站图标怎么做
  • 网站搬家图片怎么做柳州哪家公司做网站好
  • 合肥网站制作费用好的app开发公司
  • 建构网站西安外贸电子商务网站
  • 建设银行官方网站登录入口互联网网站建设
  • 如何找网站开发人员做网站guangxiyanda
  • 素材大全seo优化中商品权重主要由什么决定
  • 免费网站建设推荐网页页面怎么设计
  • 株洲网站设计安阳县职业中等专业学校
  • jira confluence做网站基于目的地的o2o旅游电子商务网站开发设计毕业设计
  • 做自媒体怎么在其它网站搬运内容汤臣杰逊品牌策划公司
  • ps怎么做华为网站界面企业咨询管理公司经营范围