当前位置: 首页 > 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.hengruixuexiao.com/news/19558.html

相关文章:

  • 可以做网站二维码吗深圳网络推广方法
  • 上海 建站电子商务网站建设多少钱
  • 上海徐汇网站建设计算机培训课程
  • 做网站论文网络营销的收获与体会
  • 做网站像素大小宁波网络营销策划公司
  • 广州做外贸网站多少钱西安网站建设推广优化
  • 杭州拱墅网站建设谷歌排名算法
  • 天津做网站选择津坤科技c大连百度关键词优化
  • 西安做网站哪家公司好商洛网站建设
  • 扬中新冠疫情最新消息今天独立站seo是什么
  • 建设部网站官网注册师考试网seo优化工作怎么样
  • 一个人在家做网站建设郑州网站设计
  • 做网站原型图软件如何推广一款app
  • 苏州做网站的企业外贸网站建设流程
  • 北京火车站网站建设广州品牌seo推广
  • 有什么网站可以做推广东莞网站建设方案报价
  • 怎样做才能发布你的网站北京百度推广官网首页
  • 做网站不推广有效果吗网站seo检测
  • 高端网站建设文案肥城市区seo关键词排名
  • 百度没有投放的网站点击网站关键词优化技巧
  • 专线可以做网站深圳广告策划公司
  • 创建自己的网站有什么用慧聪网seo页面优化
  • 北京有哪些网站建设网站怎么收录到百度
  • 字节跳动员工人数2019seo优化主要工作内容
  • 网站建设公司外链怎么做seminar什么意思中文
  • 企业网站制作一友情链接代码模板
  • 免费收录链接网南昌seo顾问
  • 网站建设 微信营销百度账号出售平台
  • 记事本做网站表格百度关键词优化词精灵
  • 办公电脑租赁平台烟台seo外包