- 博客(13)
- 收藏
- 关注
原创 图论-DFS-拓扑排序
import java.util.ArrayList; import java.util.List; /** * 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 * * 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] * * 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? * * 示例 1: * * 输入: 2, [[1,0]] * 输出: t.
2020-08-10 18:07:30 187
原创 计算具有相同数量0和1的非空(连续)子字符串的数量
/** * 给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 * * 重复出现的子串要计算它们出现的次数。 * * 示例 1 : * * 输入: "00110011" * 输出: 6 * 解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。 * * 请注意,一些重复出现的子串要计算它们出现的次数。 * * 另外,“00110011”不是有.
2020-08-10 16:15:03 881
原创 调用栈(1)
import java.util.Stack; /** * 给你一个以字符串形式表述的 布尔表达式(boolean) expression,返回该式的运算结果。 * * 有效的表达式需遵循以下约定: * * "t",运算结果为 True * "f",运算结果为 False * "!(expr)",运算过程为对内部表达式 expr 进行逻辑 非的运算(NOT) * "&(expr1,expr2,...)",运算过程为对 2 个或以上内部表达式 expr1, expr2, ... 进.
2020-06-12 17:05:33 143
原创 正则表达式(1)
/** * 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 * * '.' 匹配任意单个字符 * '*' 匹配零个或多个前面的那一个元素 * 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 * * 说明: * * s 可能为空,且只包含从 a-z 的小写字母。 * p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 * 示例 1: * * 输入: * s = "aa" * p = "a" * .
2020-06-12 16:24:13 168
原创 优先排序
import java.util.Arrays; import java.util.PriorityQueue; /** * 这里有 n 门不同的在线课程,他们按从 1 到 n 编号。每一门课程有一定的持续上课时间(课程时间)t 以及关闭时间第 d 天。一门课要持续学习 t 天直到第 d 天时要完成,你将会从第 1 天开始。 * * 给出 n 个在线课程用 (t, d) 对表示。你的任务是找出最多可以修几门课。 * * * * 示例: * * 输入: [[100, 200], [20
2020-06-12 15:28:20 343
原创 排序-合并区间
import java.util.Arrays; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; /** * 给出一个区间的集合,请合并所有重叠的区间。 * * 示例 1: * * 输入: [[1,3],[2,6],[8,10],[15,18]] * 输出: [[1,6],[8,10],[15,18]] *.
2020-06-12 12:28:59 258
原创 图论-BFS
import java.util.LinkedList; import java.util.Queue; /** * 给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。 * 如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。 * * 示例 1: * 输入: * grid = * [[0,0.
2020-06-12 11:10:43 178
原创 Dijkstra最短路径算法
import java.nio.charset.StandardCharsets; import java.util.Scanner; /** * Dijkstra最短路径算法 * 输入节点、边和权重,输出源和目的节点的最短路径 * 例子: * 输入 * 6 8 * 1 3 10 * 1 5 30 * 1 6 100 * 2 3 5 * 3 4 50 * 4 6 10 * 5 6 60 * 5 4 20 * 1 6 * 输出: * 60 */ class Shorte.
2020-06-08 23:21:23 163
原创 贪心算法(1)--双指针贪心算法
/** * LeetCode例题: * * 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 * * '?' 可以匹配任何单个字符。 * '*' 可以匹配任意字符串(包括空字符串)。 * 两个字符串完全匹配才算匹配成功。 * * 说明: * * s 可能为空,且只包含从 a-z 的小写字母。 * p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。 * 示例 1: * * 输入: * s = "aa" * p
2020-05-08 20:33:08 607
原创 动态规划(1)
LeetCode上的例题: /** * 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 * * 火车票有三种不同的销售方式: * * 一张为期一天的通行证售价为 costs[0] 美元; * 一张为期七天的通行证售价为 costs[1] 美元; * 一张为期三十天的通行证售价为 costs[2] 美元。 * 通行证允许数天无限制的旅行。 例如,如果我们在第 2 天获得一张
2020-05-08 20:01:08 202
原创 查询算法-二分查找算法
/** * 二分查找 */ public class SkillBinarySearch { public static void main(String[] args) { int[] nums = {2, 9, 15, 33, 45, 54, 62, 74, 83, 91}; BinarySearch tool = new BinarySearch...
2020-04-26 15:03:37 132
原创 排序算法-归并排序算法
/** * 归并排序 */ import java.util.Arrays; public class SkillMergeSort { public static void main(String[] args) { int[] nums = {4, 7, 3, 1, 9, 8, 2, 0, 6, 5}; MergeSort tool = new...
2020-04-26 10:34:12 114
原创 随机不重复算法
```java /** **本期参与摇号人员共10人(编号1-10),从中抽取3人,可以获得得到购买车牌的资格 ** */ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; public class Main { p...
2019-12-27 15:58:01 470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人