5751. 下标对中的最大距离
难度中等2收藏分享切换为英文接收动态反馈
给你两个 非递增 的整数数组 nums1
和 nums2
,数组下标均 从 0 开始 计数。
下标对 (i, j)
中 0 <= i < nums1.length
且 0 <= j < nums2.length
。如果该下标对同时满足 i <= j
且 nums1[i] <= nums2[j]
,则称之为 有效 下标对,该下标对的 距离 为 j - i
。
返回所有 有效 下标对 (i, j)
中的 最大距离 。如果不存在有效下标对,返回 0
。
一个数组 arr
,如果每个 1 <= i < arr.length
均有 arr[i-1] >= arr[i]
成立,那么该数组是一个 非递增 数组。
示例 1:
1 | 输入:nums1 = [55,30,5,4,2], nums2 = [100,20,10,10,5] |
示例 2:
1 | 输入:nums1 = [2,2,2], nums2 = [10,10,1] |
示例 3:
1 | 输入:nums1 = [30,29,19,5], nums2 = [25,25,25,25,25] |
示例 4:
1 | 输入:nums1 = [5,4], nums2 = [3,2] |
提示:
1 <= nums1.length <= 105
1 <= nums2.length <= 105
1 <= nums1[i], nums2[j] <= 105
nums1
和nums2
都是 非递增 数组
二分查找
首先在第一个数组里面确定一个数字target
然后在第二个数组里面查找不小于当前target
数字的最右边的那个数字的index
,然后记录两个index
差值的最大值。
1 | class Solution { |