算法思路: 首先,将每个数出现的频率以键值对的方式存入HashMap中。创建一个优先队列,队列中的元素是数字和该数字出现的频率组合的信息对,为此,我特地创建了一个信息对的类(C++提供了,java貌似没有提供),不过也挺…
分类:算法
动态规划原理
动态规划原理及重构最优解原理 最优子结构 运用动态规划求解最优化问题第一步 若一个问题的最优解中包含其子问题的最优解,则此问题具有最优解的结构性质。因为使用子问题的最优解构造原问题最优解,所以我们必须确保考察了最优解中用…
分治法 逆序对计数 O(nlgn)
一、逆序对 1. 问题背景 假如有一组电影集合,包括n部电影。某个人对这n部电影的喜欢程度各有高低,根据其喜欢程度对这n部电影进行排名,按照从1到n的方式进行标记,这就形成了一个关于电影的排名表。假设你和一个陌生人各有自…
只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2…
LeetCode-3. Longest Substring Without Repeating Characters
问题:给定一个字符串,查找不重复的最长子字符串的长度。 Example 1: Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the …
排列问题(permulation)(算法导论入门经典习题)
问题: 用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要 求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。提示:不必 太动脑筋。 /*排…
Leetcode 389. 找不同
给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t …
Go语言算法:判断素数
判断是否素数 func IsPrime(n int) bool { if n == 1 { return false } //从2遍历到n-1,看看是否有因子 for i := 2; i < n; i++ { if…
关于KMP算法中next数组和nextVal数组求法的整理
例如: 序号 1 2 3 4 5 6 7 8 模式串 a b a a b c a c next值 0 1 1 2 2 3 1 2 next数组的求解方法是: 第一位的next值为0,第二位的n…
一个简单的随机算法——红包算法
一个简单的红包生成算法,代码如下: /** * 红包 * @param n * @param money 单位:分 * @return */ public static double[] redPacket(int n,…
Edit Distance 算法实现及其设计原理
题目: Given two words word1 and word2, find the minimum number of operations required to convert&…
Power Stations HDOJ-3663
//#pragma comment(linker, "/STACK:102400000,102400000") #include<cstdio> #include<cstring> #includ…