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

网站怎么做效果好开发平台价格

网站怎么做效果好,开发平台价格,做门窗接活的网站,想学网络营销怎么学题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度…

题目

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

分析

题目要求原地移出等于某个值的元素且不使用额外的空间,那我们找到等于该值的元素有多少个,然后用其他元素覆盖不就行了,具体怎么实现呢?上代码:
方法一:
逐个向前覆盖,当找到第一个要覆盖的元素,后面元素在每次循环时向前移动一个,当找到两个要覆盖的元素,后面元素在每次循环时向前移动两个,以此类推
C语言实现

// 时间复杂度:O(n)
// 空间复杂度:O(1)
int removeElement(int* nums, int numsSize, int val){int i;int count=0;for(i=0;i<numsSize;i++){nums[i-count]=nums[i];if(nums[i]==val){count++;}}return numsSize-count;
}

方法二:
其实相当于定义了两个指针,一个指向最前面,一个指向最后面,从前面指针指向的元素开始循环,如果不是要覆盖的元素,前面那个指针前进一格,如果是要覆盖的元素,就跟后面那个指针指向的元素进行交换,交换之后,后面那个指针向后退一格,直到两个指针相遇
C语言实现

// 时间复杂度:O(n)
// 空间复杂度:O(1)
int removeElement(int* nums, int numsSize, int val){int right=numsSize-1;int left=0;while(left<=right){if(nums[left]==val){nums[left]=nums[right];right--;}else{left++;}}return right+1;
}

方法三:
双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组
慢指针:指向更新 新数组下标的位置
c++实现

// 时间复杂度:O(n)
// 空间复杂度:O(1)
class Solution {
public:int removeElement(vector<int>& nums, int val) {int slowIndex = 0;for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {if (val != nums[fastIndex]) {nums[slowIndex++] = nums[fastIndex];}}return slowIndex;}
};
http://www.yayakq.cn/news/530909/

相关文章:

  • 做网站分辨率多少高端建设网页
  • 广州哪个公司做网站好办公室装修设计理念简短范文
  • 教师招聘网站长城建设集团长沙新媒体公司排名
  • 邢台做网站的那好网站优化效果
  • 网站 免费空间wordpress author.php
  • html5网站制作软件主流的网站开发工具
  • 个人网站制作成品凡科建站模板
  • 怎么建立网站 个人电商设计怎么样
  • 好网站建设公司服务wordpress分类加密
  • 北京营销网站建设优化关键词排名哪家好
  • 贵阳网站设计详细解读浦口区建设局网站
  • SEO与网站建设创意寓意好的公司名字
  • 万网 网站托管免费1级做看网站
  • 陕西交通建设集团蓝商公司网站百度网址大全下载安装
  • 全国推广优化网站小程序免费制作平台教学
  • 做网站的一般多钱php网站服务建设
  • 本地怎样上传自己做的网站移动互联网站开发与维护招聘
  • 网站建设 移动端建设网站的具体步骤是什么
  • 网站开发流程文档百度站长工具怎么关闭
  • 盘锦建网站抖音代运营公司排名前十强
  • 网站建设制作苏州怎样做网站建设的程序
  • wordpress建站教程第六节线上销售技巧
  • 郑州建网站费用网站后台密码是什么
  • 云网站建站网站开发教育
  • 网站多个域名备案朝阳发布
  • 建设网站的行业现状分析家装公司成都
  • 网站设计 验收标准外汇跟单社区网站开发
  • 网站空间多大合适网络营销未来有哪些发展趋势
  • 普陀手机网站建设文学网站开发设计报告
  • 运动网站模板做运动户外的网站都有哪些