主要疏漏点
因为使用的是整型的哈希表来记录,所以值等于0时就是没有,此时miss++。但是最后的判断不能用miss == len2,这是很明显的,但是脑袋一懵就忘记了。
所以遇到这种问题,最好是从新梳理一遍。
以下几种方式都可实现:
if (hashTable[index] != 0) {
hashTable[index]--;
} else {
miss++;
}
if (miss == len2) { //wrong
printf("Yes %d", len1 - len2);
} else {
printf("No %d", miss);
if (hashTable[index] != 0) {
hashTable[index]--;
} else {
miss++;
}
if (miss > 0) {
printf("Yes %d", len1 - len2);
} else {
printf("No %d", miss);
int index = change(want[i]);
hashTable[index]--;
if (hashTable[index] < 0) {
miss++;
}
本文探讨了在使用整型哈希表记录元素时遇到的主要疏漏点,即当值为0时被认为是不存在的,这可能导致错误的计数。文章强调了在遇到此类问题时重新梳理思路的重要性,并提供了正确的实现方式。
&spm=1001.2101.3001.5002&articleId=91344727&d=1&t=3&u=95cf730fb1d348b8843b30321cbeb8e6)
385

被折叠的 条评论
为什么被折叠?



