摘要:
题目 有一个无序整型数组,如何求出该数组排序后的任意两个相邻元素的最大差值?要求时间和空间复杂度尽可能低。 思路 解法1:使用任意一种时间复杂度为O(nlogn)的排序算法(如快速排序),给原数组排序,然后遍历排序号的数组,并对每队相邻元素求差,最终得到最大差值。该解法的时间复杂度是O(nlogn) 阅读全文
摘要:
2.最小(大)栈问题 题目 实现一个栈,该栈带有出栈(pop),入栈(push),取最小元素(getMin)3个方法。且要保证这3个方法的时间复杂度都是O(1)。 思路 1.设原有的栈为main栈,此时创建一个额外的min栈,用于辅助main栈。 2.当第1个元素,进main栈时,让该元素,也进入m 阅读全文
摘要:
1.链表中环相关问题 1.1 链表中是否有环 有一个单向链表,链表中有可能出现“环”,就像下图这样。 那么,如何用程序来判断该链表是否为有环链表呢? 思路 创建两个指针p1和p2(在Java里就是两个对象引用),让它们同时指向这个链表的头节点。然后开始一个大循环,在循环体中,让指针p1每次向后移动1 阅读全文
摘要:
分布式事务(引入) 面试题 你简历上写用微服务boot/cloud做过项目,你不可能只有一个数据库吧?请你谈谈多个数据库之间,你如何处理分布式事务? 举例:在订单支付成功后,交易中心会调用订单中心的服务把订单状态更新,并调用物流中心的服务通知商品发货,同时还要调用积分中心的服务为用户增加相应的积分。 阅读全文