摘要:LRU least recently used.顾名思义,是根据数据的活跃度进行更新的缓存算法。 LRU Cache的LinkedHashMap实现: LinkedHashMap自身已经实现了顺序存储,默认情况下是按照元素的添加顺序存储,也可以启用按照访问顺序存储,即最近读取的数据放在最前面,最早读
阅读全文
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode *detectCycle(struct Li...
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct T...
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */#define ...
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct T...
阅读全文
摘要:把交叉点的坐标求出来即可。#define max(a,b) ( (a)>(b)?(a):(b) )#define min(a,b) ( (a)upx||downy>upy)crossArea=0; else crossArea=(upx-downx)*(upy-downy); all...
阅读全文
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* rotateRight(struct Li...
阅读全文
摘要:dp.#define MAX 1000int rowLeft[MAX][MAX];int colUp[MAX][MAX];int dp[MAX][MAX];void calRow(char **matrix,int matrixRowSize,int matrixColSize){ int i...
阅读全文
摘要:编程之美上一样的题目。寻找发帖水王。利用分治的思想。int majorityElement(int* nums, int numsSize) { int candidate; int nTimes,i; for(i=0,nTimes=0;i<numsSize;i++){ ...
阅读全文
摘要:很简单的26进制问题int titleToNumber(char* s) { int sum=0,temp; char *p=s; while(*p!='\0'){ sum=sum*26+(*p-'A'+1); p++; } return sum;}
阅读全文
摘要:利用两个栈,然后分别存储每一个链表。继而,相继pop相同的节点。有些细节需要注意,请看最后的返回值是如何处理的。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListN...
阅读全文
摘要:事情的起因是POJ上一道数据量比较大的题目。一开始我TLE,而算法是O(n)的,具体的题目记不太起来了。 后来我通过一个小技巧来改进了程序的常数因子,就是与内存分配与释放有关,事实证明,计算机寻找可用的内存是需要一定的时间的,而当数据量变得很大,并且你不得不每次重新申请内存的时候,这花费的时间...
阅读全文