算法
乘物游心0823
这个作者很懒,什么都没留下…
展开
-
KMP算法
KMP算法 主要参考《数据结构与算法》——许卓群,这本书中对KMP算法的讲解比较详细,而且易于理解。#include #include using namespace std; void findnext(string &P,int *next) { int n=P.size(); if(n==0) return; next[0]=0; int i=1; while(i<n)原创 2014-12-17 16:46:23 · 262 阅读 · 0 评论 -
Treedp入门问题—Anniversary party
Treedp入门问题—Anniversary party今天看到树形动态规划的入门问题——Anniversary party,这个问题的思路比较简单,只是实现过程稍微有些麻烦,我看网上的大部分代码,由于注释较少作为新手可能不太容易懂,便自己写了一个带有详细注释的C++实现代码,大家有需要可以参考一下。1.题目某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到...原创 2014-12-17 21:22:02 · 869 阅读 · 0 评论 -
求数组的逆序对
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。 概括:如果a[i] > a[j] 且 i 分析: 方法1:暴力循环,时间复杂度为O(n2) 方法2:利用堆排序的思想,首先将数组拆分到底,然后在合并的过程中排序,同时计算逆序对的数量 以下是java代码的实现 package leetcode; public c原创 2017-04-25 22:04:33 · 1053 阅读 · 0 评论 -
Trie树的C++实现
Trie树又称字符树,是一种树形结构,经常用于存储字典中的单词。<span style="font-size: 24px; font-family: Arial, Helvetica, sans-serif;">1)查找速度快,利用字符串的公共前缀来减小查找时间;</span><span style="font-size: 24px; font-family: Ari...原创 2014-12-15 20:36:51 · 384 阅读 · 0 评论 -
背包问题
一、0-1背包问题 题目:有n件物品和容量为m的背包 给出i件物品的重量以及价值 求解让装入背包的物品重量不超过背包容量 且价值最大, 要求每个物品只有一件供你选择放还是不放 //二维解法 //dp[i][j]表示i件物品装到容量为j的背包可以获得的最大价值 public int bag_01(int capacity,int[] w,int[] v){ int[][] dp...原创 2019-04-16 17:46:42 · 152 阅读 · 0 评论