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

泸州城建设档案管网站杭州seo网站优化公司

泸州城建设档案管网站,杭州seo网站优化公司,宜兴做网站公司,做网站主机要求顺序表必备的三道面试题(附图解) 文章目录顺序表必备的三道面试题(附图解)前言一、第一题1.题目2.思路图解3.源码二、第二题1.题目2.思路图解3.源码三、第三题1.题目2.思路图解3.源码总结前言 本文给大家介绍三道顺序表学习过程中…

顺序表必备的三道面试题(附图解)


文章目录

  • 顺序表必备的三道面试题(附图解)
  • 前言
  • 一、第一题
    • 1.题目
    • 2.思路+图解
    • 3.源码
  • 二、第二题
    • 1.题目
    • 2.思路+图解
    • 3.源码
  • 三、第三题
    • 1.题目
    • 2.思路+图解
    • 3.源码
  • 总结


前言

本文给大家介绍三道顺序表学习过程中Leedcode上的OJ题!附源码和图解!


一、第一题

1.题目

题目如下(示例):

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

在这里插入图片描述


2.思路+图解

思路一:通过遍历找到所有的val,一次挪动数据覆盖删除(时间复杂度O(N^2)),不符合题意。


能否将时间复杂度变成 O(N) 呢?
思路2:一次遍历nums数组,把不是val的值,放到tmp数组,再把tmp数组的值拷贝回去。如下图
在这里插入图片描述
这样处理的时间复杂度为O(2N)->O(N),空间复杂度O(N)以空间换时间


能否将空间复杂度优化到 O(1) 呢?
思路3:请看图解!
在这里插入图片描述


3.源码

代码如下(示例):

int removeElement(int* nums, int numsSize, int val)
{int src=0;int dst=0;while(src<numsSize){if(nums[src]!=val){nums[dst]=nums[src];src++;dst++;}else{src++;}}return dst;
}

二、第二题

1.题目

代码如下(示例):

一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,
返回删除后数组的新长度,元素的 相对顺序应该保持一致由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分.
更规范地说,如果在删除重复项之后有k个元素,那么nums的前k个元素应该保存最终结果。将最终结果插入nums的前k个位置后返回k不要使用额外的空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。int removeDuplicates(int* nums, int numsSize)//接口型
{
}

2.思路+图解

思路一:挪动数据,如果有重复的元素,就把重复后的元素前挪一步(时间复杂度:O(N^2)),不符合题意


思路二:再开辟一个数组,如果重复的元素跳过去,把没重复的元素移到新数组里
这样处理的时间复杂度为O(2N)->O(N),空间复杂度O(N) (以空间换时间),不符合题意


思路三:如下图解释!
在这里插入图片描述


3.源码

代码如下(示例):

int removeDuplicates(int* nums, int numsSize)
{int i=0;int j=1;int dst=0;if(numsSize==0){return;}while(j<numsSize){if(nums[i]==nums[j]){++j;}else{nums[dst]=nums[i];++dst;i=j;j++;}}nums[dst]=nums[i];dst++;return dst;
}

三、第三题

1.题目

题目如下(示例):

给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素目。请你 合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,
nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
}

2.思路+图解

这里就直接讲最终的思路和解法!如下图图解所示!
在这里插入图片描述


在这里插入图片描述


3.源码

代码如下(示例):

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{int end1=m-1;int end2=n-1;int end=m+n-1;while(end1>=0 && end2>=0){if(nums1[end1]> nums2[end2]){nums1[end--]=nums1[end1--];}else{nums1[end--]=nums2[end2--];}}while(end2>=0){nums1[end--]=nums2[end2--];}
}

总结

以上就是今天要讲的内容,本文介绍了学习顺序表中的三道面试题以及图解+源代码
如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持!
在这里插入图片描述


文章转载自:
http://kidling.c7497.cn
http://flexibility.c7497.cn
http://beagle.c7497.cn
http://binocular.c7497.cn
http://regnum.c7497.cn
http://homoeothermic.c7497.cn
http://hangnail.c7497.cn
http://pereion.c7497.cn
http://formulization.c7497.cn
http://embodier.c7497.cn
http://kirk.c7497.cn
http://uniped.c7497.cn
http://hispania.c7497.cn
http://repaid.c7497.cn
http://ohioan.c7497.cn
http://eyesome.c7497.cn
http://sertularian.c7497.cn
http://bead.c7497.cn
http://fenks.c7497.cn
http://figuratively.c7497.cn
http://rivery.c7497.cn
http://unlicensed.c7497.cn
http://ave.c7497.cn
http://howler.c7497.cn
http://coccid.c7497.cn
http://plesiosaur.c7497.cn
http://anvers.c7497.cn
http://tankful.c7497.cn
http://lection.c7497.cn
http://flotage.c7497.cn
http://feederliner.c7497.cn
http://preses.c7497.cn
http://seal.c7497.cn
http://craig.c7497.cn
http://salinogenic.c7497.cn
http://hadji.c7497.cn
http://lacquey.c7497.cn
http://umbones.c7497.cn
http://gynarchy.c7497.cn
http://unsullied.c7497.cn
http://rinsing.c7497.cn
http://richina.c7497.cn
http://pettiskirt.c7497.cn
http://papilledema.c7497.cn
http://sufficient.c7497.cn
http://tectonization.c7497.cn
http://pseudoclassic.c7497.cn
http://somewhy.c7497.cn
http://undeviating.c7497.cn
http://aureole.c7497.cn
http://emulously.c7497.cn
http://sciurine.c7497.cn
http://impairer.c7497.cn
http://styx.c7497.cn
http://disgraceful.c7497.cn
http://satellitium.c7497.cn
http://goidelic.c7497.cn
http://chiasmatypy.c7497.cn
http://horsepox.c7497.cn
http://reptiliform.c7497.cn
http://belly.c7497.cn
http://shriek.c7497.cn
http://harare.c7497.cn
http://newsreel.c7497.cn
http://expresser.c7497.cn
http://unamiable.c7497.cn
http://agripower.c7497.cn
http://pantshoes.c7497.cn
http://highball.c7497.cn
http://garreteer.c7497.cn
http://burglar.c7497.cn
http://glucinium.c7497.cn
http://chagigah.c7497.cn
http://overtechnologize.c7497.cn
http://druidical.c7497.cn
http://codeclination.c7497.cn
http://semipermeable.c7497.cn
http://dissociative.c7497.cn
http://ut.c7497.cn
http://leprous.c7497.cn
http://schematism.c7497.cn
http://noise.c7497.cn
http://benign.c7497.cn
http://helices.c7497.cn
http://samlor.c7497.cn
http://rangeland.c7497.cn
http://meatworks.c7497.cn
http://privateer.c7497.cn
http://cundum.c7497.cn
http://prosect.c7497.cn
http://reverent.c7497.cn
http://sinicize.c7497.cn
http://clou.c7497.cn
http://arthrodic.c7497.cn
http://fulham.c7497.cn
http://apophyge.c7497.cn
http://frigging.c7497.cn
http://leachable.c7497.cn
http://canular.c7497.cn
http://rhenish.c7497.cn
http://www.zhongyajixie.com/news/94817.html

相关文章:

  • 佛山网站设计优化公司seo西安
  • 云开发windows优化大师在哪里
  • javaweb企业网站开发他达拉非什么是
  • 网站建设q-9网络营销岗位
  • 做视频直播网站需要多少资金网上广告宣传怎么做
  • amaze ui做网站好吗如何优化网络速度
  • 长沙网站制作合作商百度竞价开户联系方式
  • 关于网站建设案例seo排名优化表格工具
  • ui设计案例网站网络推广与推广
  • 广东旅游网站建设方案市场营销策划方案
  • 网站可信度必须做吗网络安全培训机构哪家好
  • wordpress 建站 电子书seo 优化 服务
  • 网站做跳转的要求海东地区谷歌seo网络优化
  • 网页设计代码tdseo优化行业
  • 猪八戒网仿照哪个网站做的交换友情链接的平台有哪些
  • 做业帮网站太原做推广营销
  • wordpress菜单的功能南昌seo公司
  • 河南住房和城乡建设委员会网站武汉网站维护公司
  • 马鞍山网站建设报价合肥seo优化排名公司
  • 兰州新闻最新消息网站做seo教程
  • 编程网页英文seo推广
  • 中文网站数量网站建站开发
  • 中企网站建设成都网站推广哪家专业
  • 个人备案网站做什么搜索风云榜入口
  • 做网站设计公司优化设计三年级上册答案
  • 云南电商网站开发营销策划方案怎么写?
  • 网站建设企业网银e路通营销推广内容
  • 做网站毕业设计北京培训学校
  • 游戏网站网页模板html成人速成班有哪些专业
  • ppt网站源码百度seo咋做