-
Notifications
You must be signed in to change notification settings - Fork 538
Open
Description
92页, 归并排序
出现了连续两行
/* 数组元素的类型/
typedef int elem_t;
merge函数中第一个循环 for(i = 0...) 应该是 for(i = start...)
基数排序, 应该提供给用户统一的接口, 即void Sort(int A[], int len)
96页中的 a[0].link = current = front[j]; 应改为 a[0].link = front[j];
getDigit中的10应该改为R
第四页strstr第一个for循环的继续条件应该是 _p1_advance && *p 否则会访问越界. 此外, 第二个for里的while不必判断_p1因为p1不会越过p1_advance.
我原先的Leet Code代码
class Solution {
public:
char *strStr(char *haystack, char *needle) {
while(true){
char *p = haystack, *q = needle;
while(*p && *q && *p == *q){
p++; q++;
}
if(!*q){
return haystack;
}else if(*p){
haystack++;
}else{
return NULL;
}
}
}
};
看了你的代码后借鉴着写了:
class Solution {
public:
char *strStr(char *haystack, char *needle) {
if(!haystack || !needle) return NULL;
if(!*needle) return haystack;
char *p = haystack, *pEnd = haystack, *q = needle + 1;
while(*pEnd && *q){ pEnd++; q++; }
while(*pEnd){
p = haystack, q = needle;
while(*q && *p == *q){ p++; q++; }
if(!*q) return haystack;
haystack++;
pEnd++;
}
return NULL;
}
};
顺便问一下, 有什么快捷方法把我贴上去的代码直接转成"代码样式"嘛? 我是每行行首手动复制了四个空格...有些麻烦
Metadata
Metadata
Assignees
Labels
No labels