
算法
eshaoliu
这个作者很懒,什么都没留下…
展开
-
kmp算法
void kmp(char* A,char* B){ int P[10000],j,i,k,count=0,M=strlen(A),N=strlen(B); P[0] = -1; j = -1; i = 0; while(i { if(j==-1 || B[i]==B[j] )原创 2014-08-18 00:06:09 · 498 阅读 · 0 评论 -
希尔排序
void shellsort(int origin[],int n){ int i,j,step,temp; for(step = n/2;step > 0;step /=2) { for(i = step;i { for(j = i - step;j>0 && origin[j]>origin[j转载 2014-08-18 00:01:39 · 508 阅读 · 0 评论 -
算法
0-1背包 for(i=1;i { for(j=M;j>=need[i];--j) { f[j] = max(f[j],f[j-need[i]]+value[i]); } }原创 2014-08-18 00:02:07 · 469 阅读 · 0 评论 -
柱状图最大矩形问题
int largestRectangleArea(vector &height) { if(height.size()==0) return 0;height.push_back(0); stack index; int i,maxarea,area; index.push(0);原创 2015-01-09 23:42:56 · 941 阅读 · 0 评论 -
leetcode Maximal Square
新学了java二维数组的用法 int [][]array=new int[rows][]; array[i]=new int [cols];//每一行申请一列长的数据dp更新以(i,j)为右下角顶点的最大正方形的边长,如果matrix[i][j] =1,dp[i][j] =min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1否则dp[i][j]=0;原创 2015-06-16 20:45:29 · 529 阅读 · 0 评论 -
leetcode Count Complete Tree Nodes
对于每个节点如果左子树的高度等于右子树的高度,则直接套公式2^h-1,否则等于左子树的结点数量+右子树的结点数量+1public class Solution { public int countNodes(TreeNode root) { if(root == null) return 0; int l =getLeft(root)+1;原创 2015-06-16 20:34:26 · 420 阅读 · 0 评论 -
leetcode Combination Sum III
public class Solution { private List> result = new ArrayList>(); private int k; public List> combinationSum3(int k, int n) { List list =new ArrayList(); this.k =k;原创 2015-06-20 22:10:28 · 400 阅读 · 0 评论