数据机构和算法
chenjian98
从事java开发。
展开
-
Leetcode 三动态规划 硬币
算法:代码实现:public static int coinChange(int[] coins, int amount) { int dp[] = new int[amount+1]; Arrays.fill(dp,amount+1); dp[0]=0; for(int i=1;i<=amount;i++){ for(int j=0;j<coins.length;j++){ if(coins[j]<=.原创 2021-10-31 15:08:15 · 153 阅读 · 0 评论 -
LeetCode 二 二分查找
public static int find(int []arr,int key){ int low=0; int h = arr.length-1; while(low<=h){ int mid =low+(h-1)/2; if(key==arr[mid]){ return 1; } if(key<arr[mid]){ h=h-1; } .原创 2021-10-30 23:36:10 · 96 阅读 · 0 评论 -
LeetCode 总结一 二叉树
public void find(TreeNode node){If(node!=null){ find(node.left); find(node.right);}}原创 2021-10-30 23:34:20 · 3210 阅读 · 0 评论 -
kmp算法 查找一个字符串在另一个字符串出现的位置
kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是转载 2016-02-26 15:04:39 · 5090 阅读 · 0 评论 -
KMP算法详解
KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够转载 2016-02-26 15:42:28 · 271 阅读 · 0 评论 -
AC算法详解
AC算法是Alfred V.Aho(《编译原理》(龙书)的作者),和Margaret J.Corasick于1974年提出(与KMP算法同年)的一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。正如KMP算法在单模式匹配方面的突出贡献一样,AC算法对于多模式匹配算法后续的发转载 2016-02-26 15:44:28 · 562 阅读 · 0 评论 -
数据结构--线性表
一、线性表主要有2中结构:顺序结构:关系线性化,结点顺序存,具体表现为如:数组,队列,堆栈 链式机构。常见的有单链表,双向链表,循环链表二、单链表:每个结点都有个数据域和指针原创 2016-10-03 12:37:06 · 235 阅读 · 0 评论