计划
标签:算法
BNU 34985 Elegant String
一個字符串(僅包含0-k)的任何子串都不是 0-k 的某個全排列,求長度爲n的該字符串的數量。 對於n很大的情況,一般是矩陣快速冪。矩陣快速冪的第一步就是找出遞推公式。 設dp[i][j]表示長度爲n的字符串,串末尾有j…
12. Integer to Roman
Roman numerals are represented by seven different symbols: I , V , X , L , C ,&n…
貪婪算法——3 Dijkstra算法
/** * Dijkstra算法(單起點最短路徑) <br/> * 基於貪婪算法,每次各點到起點的距離中選出最小權重(該值u初始值爲點到起點的距離, 如果點沒有連接起點的邊,則值爲正無窮)的點n加入到樹中 *…
Java實現堆排序
堆排序 堆排序是另一種選擇排序方法,它是樹型選擇排序的改進,它使用的輔助空間較少,僅需要一個元素用於空間交換。 堆:根結點的關鍵碼值或者大於左右子樹或者都小於左右子樹,而且左右子樹也是堆。 如果每個結點的值都大於左右子樹…
【java数据结构与算法学习】汉诺塔
汉诺塔是递归分治思想不得不说的经典案例。 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面…
CODEVS 1068 乌龟棋(揹包型DP)
1068 乌龟棋 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 De…
Map大家族的那点事儿
Map Map是一种用于快速查找的数据结构,它以键值对的形式存储数据,每一个键都是唯一的,且对应着一个值,如果想要查找Map中的数据,只需要传入一个键,Map会对键进行匹配并返回键所对应的值,可以说Map其实就是一个存放…
Leetcode - Logger Rate Limiter
My code: import java.util.concurrent.ConcurrentHashMap; public class Logger { ConcurrentHashMap<String, Int…
Leetcode - Basic Calculator II
My code: public class Solution { public int calculate(String s) { if (s == null || s.length() == 0) { return -…
Leetcode - Valid Sudoku
My code: import java.util.HashSet; public class Solution { public boolean isValidSudoku(char[][] board) { if (…
Leetcode 51. N-Queens
回溯法,非递归求 N 皇后问题所有解,Python 3 实现: 源代码已上传 Github,持续更新。 """ 51. N-Queens The n-queens puzzle is the problem of pla…