Coder Social home page Coder Social logo

acm-cheat-sheet's People

Contributors

dryruner avatar liancheng avatar soulmachine avatar srayuws avatar w32zhong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acm-cheat-sheet's Issues

用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 ,这个链接失效了,里面什么也没有。

找茬

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

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

heap_sort 内存泄露

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

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

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

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

下一个排列

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子句根本不会执行

求确认

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

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

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

test case没通过

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

小拼写错误, typo

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

绘制书中的插图

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

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

目前考虑的工具有 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 适合绘制数据密集型的统计图,如直方图,饼状图等。

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

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.