_028#优化建议
bolen76 opened this issue · 0 comments
bolen76 commented
public int strStr(String haystack, String needle) {
int l1 = haystack.length(), l2 = needle.length();
if (l1 < l2) return -1;
for (int i = 0; ; i++) {
//if(i+l2>l1)return -1;
for (int j = 0; ; j++) {
if (j == l2) return i;
**if (i + j == l1) return -1;**
if (haystack.charAt(i + j) != needle.charAt(j)) break;
}
}
}
使用第5行取代第8行,减少循环次数。
假如needle只有最后一个字符不同,原代码几乎需要把needle遍历完才进入第8行的分支