Topic
Given an array of integers and a integer k, find out whether there is II distinct indices I and j in the array such tha T nums[i] = Nums[j] and the difference between I and J are at most K.
"Problem Analysis"
Since two numbers with the same number are limited by distance range, then the number of each element (except the last element) one by one is compared to the amount of k behind it. Returns true if they are equal. When the array has been traversed, no conditions are found to satisfy the condition. returns FALSE.
"The specific code is as follows"
BOOLContainsnearbyduplicate (int* Nums,intNumssize,intK) {intIintJif(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;}
"Personal Summary"
There are two places to be aware of:
1. When Numssize is 1, it indicates that there is only one number and returns false directly.
2. When judging the termination condition of the 2nd for Loop, J
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
[Leetcode] Contains Duplicate II Problem solving report C language