Git Product home page Git Product logo

acm-cheat-sheet's Issues

PDF中的中文,复制到记事本中是乱码

编译成PDF后,PDF中的中文,无论是正文还似乎代码中的中文,复制到记事本中是乱码。

这样会导致读者想要复制粘贴代码时,会出现乱码,就需要手动敲代码,或者到github repo的latex源代码里复制粘贴代码,很麻烦。

heap_sort 内存泄露

heap_sort中调用heap_create创建一个heap然后又将heap->elems指向数组a, 可是heap_create里面已经分配了elems的内存, 这样将导致heap_create里面分配的elems内存悬空, 导致内存泄露.

绘制书中的插图

目前本书中的插图,是直接从其他书中截图或网上搜索的,一是模糊,二是有版权问题。

因此,本书需要将所有插图用开源工具重新绘制。

目前考虑的工具有 Tikz, Graphviz, gpic, gnuplot。

Tikz是一个LaTeX宏包,专门用来画图,非常强大,可以看看这里的例子,非常炫。

Graphviz适合绘制依赖关系图、简单的class继承关系图等。

gpic 适合绘制线框图,例如数据结构。gpic可参考Brian W. Kernighan的《PIC—A Graphics Language for Typeseing, User Manual》和Eric S.Raymond的《Making Pictures with GNU PIC》。缺点:无法输入中文。

Gnuplot 适合绘制数据密集型的统计图,如直方图,饼状图等。

找茬

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;
    }
};

顺便问一下, 有什么快捷方法把我贴上去的代码直接转成"代码样式"嘛? 我是每行行首手动复制了四个空格...有些麻烦

Font Family and Comment Style

I know the fonts might be already settled as the same as those used in a nicely published book. But, the codes fonts are not very reader-friendly. May I suggest changing to another font family? Top-10 List

btw, it seems that the comments in side some codes are not well organized. Sometimes, single line comment is mixed with multiple line comment.
For example: eight_digits_bfs.c

/**
* @strut 状态
*/
typedef struct state_t {
int8_t data[DIGITS]; /** 状态的数据. */
int action; /* 由父状态移动到本状态的动作 */
int father; /* 父状态在 nodes[] 中的下标,也即父状态的哈希值 */
int count; /** 所花费的步骤数(也即路径长度-1) */
} state_t;
// 3x3 的棋盘,状态最多有 9! 种
#define STATE_MAX 362880 /* 状态总数 */


/********** functions implement **************/
/********** 方案 1,完美哈希,使用康托展开 **************/
// 9 位变进制数(空格)能表示 0 到 (9!-1) 内的所有自然数, 恰好有 9! 个,
// 与状态一一对应,因此可以把状态一一映射到一个 9 位变进制数
// 9 位变进制数,每个位数的单位,0!~8!
const int fac[] = {40320, 5040, 720, 120, 24, 6, 2, 1, 1};
/* 哈希表容量,要大于状态总数,若存在完美哈希方案,则等于状态总数 */
#define HASH_CAPACITY STATE_MAX

Best regards,
Thanks

小拼写错误, typo

动态规划那不是memorization, 是memoization。刘汝佳说过,这俩词挺容易混的。

test case没通过

第k小数这一页的第一段代码测试出错了:
A = [9, 4, 1, 6, 7, 3, 8, 2, 5]
select(A, 0, len(A) - 1, 5)
Expected:5
Output:6

去除代码中的"std::"前缀

每到题的解法都很短,没有必要考虑名称空间冲突,直接使用using namespace std即可。std::前缀徒增篇幅和代码噪音。

下一个排列

int next_permutation(int num[], int len) {
int i = len - 2; // partition number's index 
while (i >= 0 && num[i] >= num[i + 1]) i--;
if(i == -1) return 0;
 if (i >= 0) {
int j = len - 1; // change number's index 
while (num[j] <= num[i]) --j;
swap(num, i, j); reverse(num, i + 1, len);
} else {
reverse(num, i + 1, len);
}
return 1;

这段代码中if(i == -1) return 0;应该去掉吧

如果为-1应该对整个数组逆序,而不是返回.否则最后面的else子句根本不会执行

求确认

用VSCode编译,报错说找不到多个字体

mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeKaitiStd-Regular/OT
mktextfm AdobeKaitiStd-Regular/B/OT
mktextfm AdobeHeitiStd-Regular/OT
mktextfm AdobeHeitiStd-Regular/I/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/BI/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeHeitiStd-Regular/OT
mktextfm AdobeHeitiStd-Regular/OT
mktextfm AdobeKaitiStd-Regular/OT
mktextfm AdobeKaitiStd-Regular/OT

这个LaTex模板总共使用了10个字体,下载地址 https://pan.baidu.com/s/1eRFJXnW ,这个链接失效了,里面什么也没有。

docker编译后的pdf间隔比较窄

在vscode docker 的环境下编译的,间隔比较窄,有missfont.log,大佬看看是什么问题?

image


missfont.log

mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeKaitiStd-Regular/OT
mktextfm AdobeKaitiStd-Regular/B/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/BI/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeKaitiStd-Regular/OT
mktextfm AdobeKaitiStd-Regular/OT
mktextfm AdobeSongStd-Light/OT
mktextfm AdobeSongStd-Light/OT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.