[leetcode]Contains Duplicate II C语言

【题目】
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.
【题目分析】
因为对于数值相同的两个数都距离范围研限制,那么,对每一个元素(除了最后一个元素)一一与它后面的k个数比较。如果相等,则返回true。当数组遍历完之后,没有发现满足条件的。返回false。
【具体代码如下】

bool containsNearbyDuplicate(int* nums, int numsSize, int k) {
      int i;
      int j;
      if(numsSize==1)return false;
      for(i=0;i<numsSize-1;i++)
      {
        for(j=i+1;(j<=i+k)&&(j<numsSize);j++)
        {
            if(nums[i]==nums[j])
            return true;
          }
      }
      return false;

}

【个人总结】
有两个地方需要注意:
1.当numsSize为1的时候,则说明只有一个数,直接返回false.
2.第2个for循环的终止条件判断时,j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值