2020-7-21 虾皮笔试题(测试岗,2题)

这篇博客主要解析了虾皮笔试中的两道题目,包括剑指 Offer 29 - 顺时针打印矩阵和321拼接最大数。针对第二题,博主详细介绍了利用Java解决的最大子序列合并策略,通过栈来获取最大子序列,并使用双指针合并两个子序列,以找到最大数。博客强调了在确定子序列长度和合并过程中的关键点。
摘要由CSDN通过智能技术生成

1、剑指 Offer 29. 顺时针打印矩阵
2、321、拼接最大数
第2题大神的题解:Java 拆分子问题 合并求解
做点笔记:

大致思路:

  • 假设最终结果有count个数(介于0~k之间)字在nums1中,那么有(k-count)个数字在nums2中,最外层循环遍历0到count的情况。不一定从0开始,若nums2个数不足k个,则从(k-nums2.length)开始。同样,不一定在count结束,若nums1个数不足k个,则在nums1.length结束。
  • 分别从nums1、nums2取最大子序列。可以借助栈来获取最大子序列,注意只有当数组剩余元素多余栈中剩余空间时,才能将栈中较小的元素出栈。
  • 合并两个子序列组成一个序列。可以借助双指针从头递进比较序列元素大小,注意比较时不能仅比较当前索引出元素,需按大数比较。
  • 比较合并后序列的大小是否大于已缓存的答案序列的大小,取大的作为答案序列。
  • 作者:chidehang
    链接&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值