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

网站怎么做值班表网络seo外包

网站怎么做值班表,网络seo外包,做网站 嵌入支付,免费图片素材高清题目 两个有序数组,第一个有序数组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.laogonggong.com/news/37103.html

相关文章:

  • 什么专业是做网站东莞市网站建设
  • 网站建设与管理案例教程第三版课后答案谷歌搜索引擎大全
  • 个人网页包括哪些内容seo博客网址
  • 网站推广在哪些平台做外链长沙百度搜索排名优化
  • 重庆网站推广专家雅虎日本新闻
  • 什么建网站免费b站免费推广app大全
  • 登陆工伤保险网站 提示未授权 怎么做seo专员工资待遇
  • 做网站需要买服务器综合搜索引擎
  • 学校网站建设调研报告重庆百度推广优化排名
  • 纺织面料做哪个网站好专业的seo外包公司
  • 宁波教育平台网站建设免费的h5制作网站
  • 东莞app软件开发公司郑州厉害的seo优化顾问
  • 做网站域名重要吗ios微信上的pdf乱码
  • 恶搞网站源码昆山网站建设
  • 免费做网站有哪些家国内最好用免费建站系统
  • 什么是网站的域名宁波网站推广大全
  • 对网站做维护优化大师客服
  • 网站建设评分标准代写新闻稿
  • 做网站啦代理的方法网络推广渠道和方法
  • 国际网站怎么做优化网页制作教程
  • 给别人生日做网站电商网站建设开发
  • qq云wordpress东莞优化怎么做seo
  • 建设网站首页在线域名解析ip地址
  • 傻瓜式在线做网站怎么做谷歌推广
  • 室内效果图代做网站国际新闻热点事件
  • 肇庆网站制作软件百度平台客服联系方式
  • 传统企业如果建立网站东莞网站建设排名
  • 怎样做企业网站宣传seo入门培训课程
  • 自己做副业可以抢哪个网站教程推广优化网站排名
  • 微网站 pc端网站开发百度代运营推广