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

关于医疗保障局门户网站建设百度推广平台

关于医疗保障局门户网站建设,百度推广平台,赣州做网站的大公司,公司网站主要几方面题目 两个有序数组,第一个有序数组m是1000w个元素,第二个有序数组n是1000个元素,求交集,需要考虑时间复杂度和空间复杂度。 解题思路 解法1:遍历小数组n,在m数组中进行折半查找,根据数组有序…

题目

两个有序数组,第一个有序数组m是1000w个元素,第二个有序数组n是1000个元素,求交集,需要考虑时间复杂度和空间复杂度。

解题思路

解法1:遍历小数组n,在m数组中进行折半查找,根据数组有序的特性,每次折半找到数据以后,下次直接再折半就是另外一半数据了,所以时间复杂度是O(nlgm)
解法2:双指针同时遍历两个数组,不相等,小的那个数前进一步,相等都前进一步,时间复杂度是O(m)

代码参考:

这里采用折半查找:

public static void main(String[] args) {int[] m = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};int[] n = new int[]{2, 5};List<Integer> results = Lists.newArrayList();int left = 0;int right = m.length - 1;for (int i = 0; i < n.length; i++) {while (left < right) {int mid = (right + left) / 2;if (n[i] == m[mid]) {results.add(n[i]);left = mid;right = m.length - 1;break;}if (n[i] > m[mid]) {left = mid;}if (n[i] < m[mid]) {right = mid;}}}System.out.println(results);}

思维拓展

遇到有序的数组解题思路,一般会用到折半和双指针的思想。
比如:[10,9,8,6,5,4,11,12,23] 这种两边大中间小的数据如何排序?思路就是用双指针从左右遍历,每次取一个最大的数。

http://www.yayakq.cn/news/453916/

相关文章:

  • 中国建设银行官网站陕西西安wordpress购物app
  • 百度seo专业网站网络维护岗位职责
  • 网站seo技术玉器珠宝做网站
  • 家电维修网站建设ps做素材下载网站有哪些
  • 上海网站建设市场百度提交入口网址
  • 只用php做网站wordpress 引用来源
  • 银医网站建设方案织梦医院网站源码
  • 网站建设网页的长宽搭建一个公司网站
  • 布朗新风 中企动力提供网站建设梧州seo排名
  • 网站 栏目 英语楚天网站建设合同
  • 健身俱乐部网站模板互联网广告投放代理公司
  • 西安做网站公司玖佰网络台中网站建设
  • 做一个网站需要多长时间一个ip 做2个网站吗
  • 成都工程网站建设沈阳和平三好街做网站
  • 优斗士做网站怎么样泰安如何开发商城app开发
  • 宾川网站建设wordpress 启动慢
  • wordpress网站换字体影楼网站设计
  • 太原网站建设晋icp备wordpress wp syntax
  • 南阳做网站推广企业网站方案
  • 上海住房和城乡建设厅网站如何向百度提交网站地图
  • 做php网站都用框架吗瑞安哪里有做百度的网站
  • 美食城网站建设策划书网上装修平台
  • 三星智能手表网站宁波建设监理管理协会网站
  • 公司展示类网站模板免费下载河北网站开发价格
  • 泉州百度网站快速优化婚礼现场布置效果图
  • 网站公司的未来项目网上备案查询系统
  • wordpress后台加站点图标传媒公司创业
  • 网站空间虚拟主机续费池州网站制作优化
  • 昆明网站建设培训物联网是什么意思?
  • 做网站一般需要哪些文件夹网站制作全包价格