随笔分类 -  Alogrithm

LRU经典算法的原理与实现
摘要:LRU least recently used.顾名思义,是根据数据的活跃度进行更新的缓存算法。 LRU Cache的LinkedHashMap实现: LinkedHashMap自身已经实现了顺序存储,默认情况下是按照元素的添加顺序存储,也可以启用按照访问顺序存储,即最近读取的数据放在最前面,最早读 阅读全文

posted @ 2017-06-02 11:29 coderlt 阅读(10922) 评论(0) 推荐(0)

Linked List Cycle II || LeetCode
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode *detectCycle(struct Li... 阅读全文

posted @ 2015-06-13 00:16 coderlt 阅读(145) 评论(0) 推荐(0)

Construct Binary Tree from Inorder and Postorder Traversal || LeetCode
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct T... 阅读全文

posted @ 2015-06-10 18:35 coderlt 阅读(107) 评论(0) 推荐(0)

Count Complete Tree Nodes || LeetCode1
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */#define ... 阅读全文

posted @ 2015-06-10 13:04 coderlt 阅读(171) 评论(0) 推荐(0)

Convert Sorted Array to Binary Search Tree || LeetCode
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */struct T... 阅读全文

posted @ 2015-06-08 16:40 coderlt 阅读(114) 评论(0) 推荐(0)

Rectangle Area || LeetCode
摘要:把交叉点的坐标求出来即可。#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... 阅读全文

posted @ 2015-06-08 13:36 coderlt 阅读(164) 评论(0) 推荐(0)

Rotate List || LeetCode
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* rotateRight(struct Li... 阅读全文

posted @ 2015-06-07 18:14 coderlt 阅读(168) 评论(0) 推荐(0)

Maximal Square || LeetCode
摘要: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... 阅读全文

posted @ 2015-06-05 21:45 coderlt 阅读(363) 评论(1) 推荐(0)

Majority Element || leetcode
摘要:编程之美上一样的题目。寻找发帖水王。利用分治的思想。int majorityElement(int* nums, int numsSize) { int candidate; int nTimes,i; for(i=0,nTimes=0;i<numsSize;i++){ ... 阅读全文

posted @ 2015-06-04 19:00 coderlt 阅读(162) 评论(0) 推荐(0)

Excel Sheet Column Number || leetcode
摘要:很简单的26进制问题int titleToNumber(char* s) { int sum=0,temp; char *p=s; while(*p!='\0'){ sum=sum*26+(*p-'A'+1); p++; } return sum;} 阅读全文

posted @ 2015-06-01 16:27 coderlt 阅读(144) 评论(0) 推荐(0)

Intersection of Two Linked Lists | LeetCode
摘要:利用两个栈,然后分别存储每一个链表。继而,相继pop相同的节点。有些细节需要注意,请看最后的返回值是如何处理的。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListN... 阅读全文

posted @ 2015-05-31 23:00 coderlt 阅读(147) 评论(0) 推荐(0)

管理你的内存
摘要:事情的起因是POJ上一道数据量比较大的题目。一开始我TLE,而算法是O(n)的,具体的题目记不太起来了。 后来我通过一个小技巧来改进了程序的常数因子,就是与内存分配与释放有关,事实证明,计算机寻找可用的内存是需要一定的时间的,而当数据量变得很大,并且你不得不每次重新申请内存的时候,这花费的时间... 阅读全文

posted @ 2015-05-29 19:15 coderlt 阅读(202) 评论(0) 推荐(0)

导航