自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

信仰.的博客

学无止境

  • 博客(46)
  • 收藏
  • 关注

原创 JAVA程序设计:冗余连接 II(LeetCode:685)

在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。输入一个有向图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。 每一个边 的元素是一对 [u, v],用...

2020-01-31 14:09:14 480

原创 JAVA程序设计:冗余连接(LeetCode:684)

在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N...

2020-01-31 12:42:57 375

原创 JAVA程序设计:有效的括号字符串(LeetCode:678)

给定一个只包含三种字符的字符串:(,)和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 (必须有相应的右括号 )。任何右括号 )必须有相应的左括号 (。左括号 ( 必须在对应的右括号之前 )。*可以被视为单个右括号 ),或单个左括号 (,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: "()"输出: Tru...

2020-01-31 12:28:46 907

原创 JAVA程序设计:24 点游戏(LeetCode:679)

你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过*,/,+,-,(,)的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符/表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算...

2020-01-30 19:40:25 707

原创 JAVA程序设计:键值映射(LeetCode:677)

实现一个 MapSum 类里的两个方法,insert和sum。对于方法insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。示例 1:输入: insert("apple", 3), 输出: Null输入: s...

2020-01-29 20:05:49 638

原创 JAVA程序设计:实现一个魔法字典(LeetCode:676)

实现一个带有buildDict, 以及search方法的魔法字典。对于buildDict方法,你将被给定一串不重复的单词来构建一个字典。对于search方法,你将被给定一个单词,并且判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。示例 1:Input: buildDict(["hello", "leetcode"]), Output: Nul...

2020-01-29 18:14:33 373

原创 JAVA程序设计:为高尔夫比赛砍树(LeetCode:675)

你被请来给一个要举办高尔夫比赛的树林砍树. 树林由一个非负的二维数组表示, 在这个数组中:0 表示障碍,无法触碰到.1表示可以行走的地面.比1大的数表示一颗允许走过的树的高度.你被要求按照树的高度从低向高砍掉所有的树,每砍过一颗树,树的高度变为1。你将从(0,0)点开始工作,你应该返回你砍完所有树需要走的最小步数。 如果你无法砍完所有的树,返回 -1 。可以保证的是,没有两棵...

2020-01-29 17:45:56 379

原创 第 18 场双周赛:1330. 翻转子数组得到最大的数组值(贪心)

给你一个整数数组nums 。「 数组值」定义为所有满足0 <= i < nums.length-1的|nums[i]-nums[i+1]|的和。你可以选择给定数组的任意子数组,并将该子数组翻转。但你只能执行这个操作一次 。请你找到可行的最大 数组值。示例 1:输入:nums = [2,3,1,5,4]输出:10解释:通过翻转子数组 [3,1,5]...

2020-01-28 18:02:53 544

原创 LeetCode第172场周赛:5322. 工作计划的最低难度(动态规划)

你需要制定一份d天的工作计划表。工作之间存在依赖,要想执行第i项工作,你必须完成全部j项工作(0 <= j < i)。你每天 至少需要完成一项任务。工作计划的总难度是这d天每一天的难度之和,而一天的工作难度是当天应该完成工作的最大难度。给你一个整数数组jobDifficulty和一个整数d,分别代表工作难度和需要计划的天数。第i项工作的难度是jo...

2020-01-27 12:41:20 584

原创 LeetCode第172场周赛:5321. 阈值距离内邻居最少的城市(Floyd)

有 n个城市,按从 0 到 n-1编号。给你一个边数组edges,其中 edges[i] = [fromi, toi, weighti]代表fromi和toi两个城市之间的双向加权边,距离阈值是一个整数distanceThreshold。返回能通过某些路径到达其他城市数目最少、且路径距离 最大 为distanceThreshold的城市。如果有多个这样的城市,则返回编号最...

2020-01-27 11:44:32 329

原创 JAVA程序设计:最长递增子序列的个数(LeetCode:673)

给定一个未排序的整数数组,找到最长递增子序列的个数。示例 1:输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例 2:输入: [2,2,2,2,2]输出: 5解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。注意:给定的数组长度不超过 2000 并且结果一定是3...

2020-01-25 17:01:57 1034

原创 JAVA程序设计:灯泡开关 Ⅱ(LeetCode:672)

现有一个房间,墙上挂有n只已经打开的灯泡和 4 个按钮。在进行了m次未知操作后,你需要返回这n只灯泡可能有多少种不同的状态。假设这 n 只灯泡被编号为 [1, 2, 3 ..., n],这 4 个按钮的功能如下:将所有灯泡的状态反转(即开变为关,关变为开)将编号为偶数的灯泡的状态反转将编号为奇数的灯泡的状态反转将编号为 3k+1 的灯泡的状态反转(k = 0, 1, 2,...

2020-01-25 16:41:11 914

原创 JAVA程序设计:乘法表中第k小的数(LeetCode:668)

几乎每一个人都用乘法表。但是你能在乘法表中快速找到第k小的数字吗?给定高度m、宽度n 的一张m * n的乘法表,以及正整数k,你需要返回表中第k小的数字。例1:输入: m = 3, n = 3, k = 5输出: 3解释:乘法表:1 2 32 4 63 6 9第5小的数字是 3 (1, 2, 2, 3, 3).例 2:...

2020-01-25 12:52:04 348

原创 JAVA程序设计:优美的排列 II(LeetCode:667)

给定两个整数n和k,你需要实现一个数组,这个数组包含从1到n的 n个不同整数,同时满足以下条件:① 如果这个数组是 [a1, a2, a3, ... , an] ,那么数组[|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中应该有且仅有k 个不同整数;.② 如果存在多种答案,你只需实现并返回其中任意一种.示例 ...

2020-01-23 17:18:08 390

原创 JAVA程序设计:奇怪的打印机(LeetCode:664)

有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印同一个字符序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给定一个只包含小写英文字母的字符串,你的任务是计算这个打印机打印它需要的最少次数。示例 1:输入: "aaabbb"输出: 2解释: 首先打印 "aaa" 然后打印 "bbb"。示例 2:输入: "aba"输出: 2解释: 首先打印...

2020-01-23 14:55:23 407

原创 JAVA程序设计:二叉树最大宽度(LeetCode:662)

给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。示例 1:输入: 1 / \ 3 2 ...

2020-01-22 13:05:17 1277

原创 JAVA程序设计:分割数组为连续子序列(LeetCode:659)

输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割?示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, 33, 4, 5示例 2:输入: [1,2,3,3,4,4,5,5]输出: True解释:你可以分割...

2020-01-21 16:41:05 770

原创 JAVA程序设计:输出二叉树(LeetCode:655)

在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则:行数m应当等于给定二叉树的高度。列数n应当总是奇数。根节点的值(以字符串格式给出)应当放在可放置的第一行正中间。根节点所在的行与列会将剩余空间划分为两部分(左下部分和右下部分)。你应该将左子树输出在左下部分,右子树输出在右下部分。左下和右下部分应当有相同的大小。即使一个子树为空而另一个非空,你不需要为空的子树输出任何东西...

2020-01-20 14:22:28 526

原创 LeetCode第172场周赛:1326. 灌溉花园的最少水龙头数目(贪心)

在 x 轴上有一个一维的花园。花园长度为n,从点0开始,到点n结束。花园里总共有n + 1 个水龙头,分别位于[0, 1, ..., n] 。给你一个整数n和一个长度为n + 1 的整数数组ranges,其中ranges[i] (下标从 0 开始)表示:如果打开点i处的水龙头,可以灌溉的区域为[i -ranges[i], i + ranges[i]]。...

2020-01-20 12:41:15 577

原创 JAVA程序设计:Dota2 参议院(LeetCode:649)

Dota2 的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利:如果参议...

2020-01-18 19:42:31 365 1

原创 JAVA程序设计:单词替换(LeetCode:648)

在英语中,我们有一个叫做词根(root)的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为继承词(successor)。例如,词根an,跟随着单词other(其他),可以形成新的单词another(另一个)。现在,给定一个由许多词根组成的词典和一个句子。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。你需要输出替换之后...

2020-01-18 18:24:00 2265

原创 JAVA程序设计:回文子串(LeetCode:647)

给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".注意:输...

2020-01-16 11:03:06 342

原创 JAVA程序设计:求解方程(LeetCode:640)

求解一个给定的方程,将x以字符串"x=#value"的形式返回。该方程仅包含'+',' - '操作,变量x和其对应系数。如果方程没有解,请返回“No solution”。如果方程有无限解,则返回“Infinite solutions”。如果方程中只有一个解,要保证返回值x是一个整数。示例 1:输入: "x+5-3+x=6+x-2"输出: "x=2"示例 2:输入...

2020-01-15 09:53:54 2025

原创 JAVA程序设计:解码方法 2(LeetCode:639)

一条包含字母A-Z 的消息通过以下的方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26除了上述的条件以外,现在加密字符串可以包含字符 '*'了,字符'*'可以被当做1到9当中的任意一个数字。给定一条包含数字和字符'*'的加密信息,请确定解码方法的总数。同时,由于结果值可能会相当的大,所以你应当对109+ 7取模。(翻译者标注:此处取模...

2020-01-14 20:50:03 277

原创 JAVA程序设计:大礼包(LeetCode:638)

在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5], ...

2020-01-14 16:57:30 951

原创 JAVA程序设计:函数的独占时间(LeetCode:636)

给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。日志是具有以下格式的字符串:function_id:start_or_end:timestamp。例如:"0:start:0"表示函数 0 从 0 时刻开始运行。"0:end:0"表示函数 0 在 0 时刻结束。函数的独占时间...

2020-01-13 20:00:37 282

原创 LeetCode第171场周赛:5310. 二指输入的的最小距离(动态规划)

二指输入法定制键盘在 XY 平面上的布局如上图所示,其中每个大写英文字母都位于某个坐标处,例如字母A位于坐标(0,0),字母B位于坐标(0,1),字母P位于坐标(2,3)且字母 Z位于坐标(4,1)。给你一个待输入字符串word,请你计算并返回在仅使用两根手指的情况下,键入该字符串需要的最小移动总距离。坐标(x1,y1) 和 (x2,y2) 之间的距离是|x1...

2020-01-13 09:27:33 353

原创 机器学习之强化学习

强化学习马尔科夫决策过程Q-learning 深度强化学习自主学习Flappy Bird游戏上图的输出纠正一下:应该是[4. ...

2020-01-12 20:25:39 1251

原创 JAVA程序设计:最小区间(LeetCode:632)

你有k个升序排列的整数数组。找到一个最小区间,使得k个列表中的每个列表至少有一个数包含在其中。我们定义如果b-a < d-c或者在b-a == d-c时a < c,则区间 [a,b] 比 [c,d] 小。示例 1:输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]输出: [20,24]解释:列表 1:[4...

2020-01-11 14:47:11 542

原创 JAVA程序设计:课程表 III(LeetCode:630)

这里有 n 门不同的在线课程,他们按从 1 到 n编号。每一门课程有一定的持续上课时间(课程时间)t 以及关闭时间第 d天。一门课要持续学习 t 天直到第 d 天时要完成,你将会从第 1 天开始。给出 n 个在线课程用 (t, d) 对表示。你的任务是找出最多可以修几门课。示例:输入: [[100, 200], [200, 1300], [1000, 1250], [2000...

2020-01-10 19:15:22 785

原创 JAVA程序设计:K个逆序对数组(LeetCode:629)

给出两个整数n和k,找出所有包含从1到n的数字,且恰好拥有k个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第j个元素,如果满i<j且a[i]>a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod 109+ 7 的值。示例 1:输入: n = 3, k = 0输出: 1解释:只有数组 [...

2020-01-10 16:31:07 508

原创 JAVA程序设计:在二叉树中增加一行(LeetCode:623)

给定一个二叉树,根节点为第1层,深度为 1。在其第d层追加一行值为v的节点。添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为v的左子树和右子树。将N 原先的左子树,连接为新节点v 的左子树;将N 原先的右子树,连接为新节点v 的右子树。如果 d 的值为 1,深度 d - 1 不存在,则创建一个新的根节点 v,原...

2020-01-09 21:58:31 276 1

原创 JAVA程序设计:任务调度器(LeetCode:621)

给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需...

2020-01-09 13:30:24 640

原创 JAVA程序设计:有效三角形的个数(LeetCode:611)

给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。思路:题目不难,注意判断三角形是否合法的条件!class Solution...

2020-01-08 19:08:31 1252

原创 JAVA程序设计:在系统中查找重复文件(LeetCode:609)

给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。输入列表中的单个目录信息字符串的格式如下:"root/d1/d2/.../dm f1.txt(f1_content) f2.txt(f2_content) ... fn.txt(fn_content)"这意味着有 n 个文件...

2020-01-08 18:49:26 774

原创 JAVA程序设计:不含连续1的非负整数(LeetCode:600)

给定一个正整数 n,找出小于或等于 n 的非负整数中,其二进制表示不包含连续的1的个数。示例 1:输入: 5输出: 5解释:下面是带有相应二进制表示的非负整数<= 5:0 : 01 : 12 : 103 : 114 : 1005 : 101其中,只有整数3违反规则(有两个连续的1),其他5个满足规则。说明: 1 <= n <= 10^9思路...

2020-01-07 18:22:28 602 1

原创 机器学习之有监督学习

监督学习的目标 利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到未知数据上,达到分类或回归的目的。分类:当输出是离散的,学习任务为分类任务。回归:当输出是连续的,学习任务为回归任务。分类学习输入:一组有标签的训练数据(也称观察和评估),标签表明了这些数据(观察)的所属类别。输出:分类模型根据这些训练数据,训练自己的模型参数,学习出一个适合这数据的分...

2020-01-07 15:18:54 2544

原创 机器学习之无监督学习

注:本篇博客所有案例数据由MOOC平台提供!无监督学习-聚类K-means算法k-means算法以k为参数,将n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。其处理过程如下:(1)随机选择k个点作为初始的聚类中心;(2)对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇;(3)对每个簇,计算所有点的均值作为新的聚类中心;(4)重复(2)、(3)直...

2020-01-06 10:52:29 735

原创 LeetCode第170场周赛:5306. 让字符串成为回文串的最少插入次数(DP)

给你一个字符串s,每一次操作你都可以在字符串的任意位置插入任意字符。请你返回让s成为回文串的最少操作次数。「回文串」是正读和反读都相同的字符串。示例 1:输入:s = "zzazz"输出:0解释:字符串 "zzazz" 已经是回文串了,所以不需要做任何插入操作。示例 2:输入:s = "mbadm"输出:2解释:字符串可变为 "mbdadbm" 或者...

2020-01-06 10:08:09 364

原创 LeetCode第170场周赛:5305. 获取你好友已观看的视频(BFS)

有n 个人,每个人都有一个0到n-1的唯一id。给你数组 watchedVideos和friends,其中watchedVideos[i]和friends[i]分别表示id = i的人观看过的视频列表和他的好友列表。Level1的视频包含所有你好友观看过的视频,level2的视频包含所有你好友的好友观看过的视频,以此类推。一般的,Level 为...

2020-01-06 10:06:22 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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