Leon Dong

Curiosity Drives Innovation, Innovation Nurtures Progress.

Dynamically Create N-D array in C

Traditional wayIn a C program, If we want to create an N-dimension array in heap (dynamically), we need to allocate the memory space step by step. F..


Troubleshooting-Crash When Calling Function

BackgroundRecently, one of my teammate asked me to help him to debug a program. The behavior of the program was so strange that makes him unable to ..


Endian Problem in Coding

Introduction to EndianAs we know, the storage unit of modern computer system is Byte and each byte is 8-bit long. Most of the programming language h..


KMP字符串匹配算法

字符串匹配是一个很经典的问题。问题输入包括两个字符串:主串S和模式串P,而我们的任务是判断S中是否包含P。如果包含则返回S中出现的第一个P的位置( 或S中出现的所有的P的位置),否则返回-1(NULL)。 在本文中,我主要讨论和讲解KMP字符串匹配算法的具体细节和背后的算法思想。在下文中,为了便..


Analysis of Binary Search

BackgroundDays before, I was studying the tree structure. In tree search operation, we need to find a minimum element in a node that is bigger (in t..


Strong and Weak Symbols in GCC

MotivationGlobal variables are powerful but have the risk of being altered carelessly. Under most cases, we can add static modifier on this global v..


C语言无符号数据读取

背景像C语言这种语言对输入输出的要求极其严格,你必须要制定你读取的数据类型以及格式。现在的问题是如果你读取的时候指定了错误的数据类型,会发生什么? 案例分析加入说你要读取64位无符号整数类型数据,所以你的程序可能大概是这样子的。 12unsigned long val=0;scanf("..


电梯的停留楼层数量分析

问题描述假设现在一个楼栋共有M层,有一个电梯一次性最多能装N个人。问题是,假如说现在该电梯在一楼进入了N个乘客,不考虑从中间楼层上的乘客问题,那么该电梯大概需要停留几次才能将所有的乘客送到目的地。也就是说,这N个乘客选出不同楼层的数量X的期望是多少? 按照定义求解首先,我们可以分析出随机变量X可..


多桶哈希的冲突数量分析

介绍传统的哈希方式采用一个大的连续空间来存储元素,当元素满了之后,它需要将空间的容量扩充为两倍,并将之前所有的元素重新哈希到新的空间里面,这个过程成为Rehash. 现在我们有一个问题是, 如果将数据按照范围等分成K份,将一个大的空间等分成K个桶。然后将每一份数据分别hash到对应的桶里面,..


阿里笔试编程题-相亲的次数问题

问题描述一个未婚男青年要和N个女孩相亲,由于他不记录已经相亲过的女孩,而是每一次随机从这N个女孩中挑选一个进行相亲。由于相亲的女孩可能是已经相亲过的,那么现在的问题就是他平均要相亲多少次,才能将所有的女孩都相亲一遍(期望)。 问题分析其实呢,这道题只是一道披着编程外表的数学题。他就是要求男孩相亲..