赞
踩
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。
示例1:
输入: nums = [1,2,3,1], k = 3
输出: true
示例2:
输入: nums = [1,0,1,1], k = 1
输出: true
示例3:
输入: nums = [1,2,3,1,2,3], k = 2
输出: false
将每个元素与其后的k个元素依次比较,看看他们是不是相等
由于题目没有给出k的范围,要注意先判断k的大小,如果k小于等于0,结果必然返回false
窗口滑动时考虑越界,取元素后第k个元素和数组最后一个元素的最小下标做边界
public boolean containsNearbyDuplicate(int[] nums, int k) {
if (k <= 0) {
return false;
}
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j <= Math.min(i + k, nums.length - 1); j++) {
if (nums[i] == nums[j]) {
return true;
}
}
}
return false;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。