自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除