一、实习:
1. 实习日记:图像检索算法 LSH 的总结与分析(matlab)
二、数组类
1. [数组赋值] 已知数组 A[n], 求数组 B[n]。其中,B[i] = A[0] * ... * A[i-1] * A[i] * ... * A[n] 。(要求:不能用除法;时间 O(n), 空间 O(1))
void getElemOfB(int *B, int *A, int n) { B[0] = 1; for(int i = 1; i < n; ++i) B[i] = A[i-1] * B[i-1]; int tmp = 1; for(int i = n-2; i >= 0; --i) { tmp *= A[i+1]; B[i] *= tmp; } }
2. [数组统计] 已知整型数组 A[n] 中的元素范围为 1~n,统计 1~n 中的数字各出现多少次。(要求:时间 O(n), 空间 O(1))
void repeats(int A[], int n) { for(int i = 0; i < n; ++i) { if(A[i] % n == 0) A[i] -= n; /* 本身存的为 n */ A[A[i] % n] += n; } for(int elem = 1; elem <= n; ++elem) printf("elem = %d, occurs = %d\n", elem, A[elem % n] / n); }
3. [数组去重] LeedCode 题解: 50
6. [树状数组]
7. [并查集]
8. [位图]
10.[排列组合]
三、链表类
四、图类
五、哈希