自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

信仰.的博客

学无止境

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

原创 第 16 场双周赛:1301. 最大得分的路径数目(两种解法)

给你一个正方形字符数组board,你从数组最右下方的字符'S'出发。你的目标是到达数组最左上角的字符'E' ,数组剩余的部分为数字字符1, 2, ..., 9或者障碍 'X'。在每一步移动中,你可以向上、向左或者左上方移动,可以移动的前提是到达的格子没有障碍。一条路径的 「得分」 定义为:路径上所有数字的和。请你返回一个列表,包含两个整数:第一个整数是 「得分」 的最大值...

2019-12-31 18:55:14 307 1

原创 JAVA程序设计:寻找最近的回文数(LeetCode:564)

给定一个整数 n ,你需要找到与它最近的回文数(不包括自身)。“最近的”定义为两个整数差的绝对值最小。示例 1:输入: "123"输出: "121"注意:n 是由字符串表示的正整数,其长度不超过18。如果有多个结果,返回最小的那个。思路:2019年最后一天,发个博客纪念一下,这道题不难,处理下相应情况即可。class Solution { private lo...

2019-12-31 15:24:14 642

原创 LeetCode第169场周赛:5298. 口算难题(深度优先搜索)

给你一个方程,左边用words表示,右边用result 表示。你需要根据以下规则检查方程是否可解:每个字符都会被解码成一位数字(0 - 9)。每对不同的字符必须映射到不同的数字。每个 words[i] 和 result都会被解码成一个没有前导零的数字。左侧数字之和(words)等于右侧数字(result)。如果方程可解,返回True,否则返回False。示例...

2019-12-29 20:35:32 441 1

原创 JAVA程序设计:最优除法(LeetCode:553)

给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如,[2,3,4] -> 2 / 3 / 4 。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。示例:输入: [1000,100,10,2]输出: "1000/(100/10/2)"解释:1000...

2019-12-27 23:09:05 488

原创 JAVA程序设计:学生出勤记录 II(LeetCode:552)

给定一个正整数n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量。 答案可能非常大,你只需返回结果mod 109 + 7的值。学生出勤记录是只包含以下三个字符的字符串:'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场如果记录不包含多于一个'A'(缺勤)或超过两个连续的'L'(迟到),则该记录被视为可奖励的。示例 1:输入: n ...

2019-12-27 19:56:50 545 1

原创 JAVA程序设计:移除盒子(LeetCode:546)

给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k>= 1),这样一轮之后你将得到 k*k 个积分。当你将所有盒子都去掉之后,求你能获得的最大积分和。示例 1:输入:[1, 3, 2, 2, 2, 3, 4, 3, 1]输出:23解释:...

2019-12-26 18:27:51 440

原创 JAVA程序设计:01 矩阵(LeetCode:542)

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0...

2019-12-25 12:26:04 879

原创 JAVA程序设计:按权重随机选择(LeetCode:528)

给定一个正整数数组w ,其中w[i]代表位置i的权重,请写一个函数pickIndex,它可以随机地获取位置i,选取位置i的概率与w[i]成正比。说明:1 <= w.length <= 100001 <= w[i] <= 10^5pickIndex将被调用不超过10000次示例1:输入:["Solution","pickIn...

2019-12-21 13:11:18 776

原创 Kd-Tree讲解--(HDUOJ-4347:The Closest M Points)

The Closest M Points Time Limit: 16000/8000 MS (Java/Others)Memory Limit: 98304/98304 K (Java/Others) Total Submission(s): 8330Accepted Submission(s): 2704 Problem Descrip...

2019-12-20 21:34:54 462

原创 C++:inline

1.引入inline的原因在C/C++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别引入了inline修饰符,表示为内联函数。其中栈空间是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统中,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题。例如:函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。使用inline修...

2019-12-20 19:17:43 354

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

假设有从 1 到 N 的N个整数,如果从这N个数字中成功构造出一个数组,使得数组的第 i位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第i位的数字能被i整除i 能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?示例1:输入: 2输出: 2解释:第 1 个优美的排列...

2019-12-20 18:50:28 398

原创 JAVA程序设计:连续数组(LeetCode:525)

给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。思路:将0变成-1,1还是1,然后从前到后累加过去,记录每种...

2019-12-20 17:37:06 417

原创 JAVA程序设计:连续的子数组和(LeetCode:523)

给定一个包含非负数的数组和一个目标整数k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入: [23,2,4,6,7], k = 6输出: True解释: [2,4] 是一个大小为 2 的子数组,并且和为 6。示例 2:输入: [23,2,6,4,7], k = 6输出: True解...

2019-12-19 15:37:43 603

原创 JAVA程序设计:超级洗衣机(LeetCode:517)

假设有 n台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m(1 ≤ m ≤ n)台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。给定一个非负整数数组代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的最少的操作步数。如果不能使每台洗衣机中衣物的数量相等,则返回 -1。...

2019-12-18 09:50:18 727

原创 JAVA程序设计:最长回文子序列(LeetCode:516)

给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。思路:一道经典动态规划题,定义dp[i][j]:表示字符串s从前往后到第i个字符匹配到字符串s从后往前第j个字符的回文序列最大值。...

2019-12-17 09:19:26 492

原创 JAVA程序设计:自由之路(LeetCode:514)

视频游戏“辐射4”中,任务“通向自由”要求玩家到达名为“Freedom Trail Ring”的金属表盘,并使用表盘拼写特定关键词才能开门。给定一个字符串ring,表示刻在外环上的编码;给定另一个字符串key,表示需要拼写的关键词。您需要算出能够拼写关键词中所有字符的最少步数。最初,ring的第一个字符与12:00方向对齐。您需要顺时针或逆时针旋转 ring 以使key的一个字符...

2019-12-16 22:05:24 313

原创 LeetCode第167场周赛:1293. 网格中的最短路径(BFS)

给你一个m * n的网格,其中每个单元格不是0(空)就是1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。示例 1:输入:grid =[[0,0,0],[1,1,0],...

2019-12-16 20:53:31 704

原创 LeetCode第167场周赛:5285. 元素和小于等于阈值的正方形的最大边长(前缀和+二分答案)

给你一个大小为m x n的矩阵mat和一个整数阈值threshold。请你返回元素总和小于或等于阈值的正方形区域的最大边长;如果没有这样的正方形区域,则返回 0。示例 1:输入:mat = [[1,1,3,2,4,3,2],[1,1,3,2,4,3,2],[1,1,3,2,4,3,2]], threshold = 4输出:2解释:总和小于 4 的正方形的最大边长...

2019-12-15 17:40:00 299

原创 JAVA程序设计:下一个更大元素 II(LeetCode:503)

给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个...

2019-12-12 19:32:44 356

原创 JAVA程序设计:IPO(LeetCode:502)

假设 力扣(LeetCode)即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给定若干个项目。对于每个项目 i,它都有一个纯利润 Pi,并且需要最小的资本 Ci 来启动相应的项目。最初,你有 W 资本。...

2019-12-12 09:34:41 642

原创 JAVA程序设计:非重叠矩形中的随机点(LeetCode:497)

给定一个非重叠轴对齐矩形的列表 rects,写一个函数 pick 随机均匀地选取矩形覆盖的空间中的整数点。提示:整数点是具有整数坐标的点。矩形周边上的点包含在矩形覆盖的空间中。第 i 个矩形 rects [i] = [x1,y1,x2,y2],其中[x1,y1] 是左下角的整数坐标,[x2,y2] 是右上角的整数坐标。每个矩形的长度和宽度不超过 2000。1 <= rect...

2019-12-11 12:25:55 472

原创 LeetCode第166场周赛:1284. 转化为全零矩阵的最少反转次数(BFS)

给你一个m x n的二进制矩阵mat。每一步,你可以选择一个单元格并将它反转(反转表示 0 变 1 ,1 变 0 )。如果存在和它相邻的单元格,那么这些相邻的单元格也会被反转。(注:相邻的两个单元格共享同一条边。)请你返回将矩阵mat 转化为全零矩阵的最少反转次数,如果无法转化为全零矩阵,请返回-1。二进制矩阵的每一个格子要么是 0 要么是 1 。全零矩阵是所有格子都为...

2019-12-09 15:23:30 312

原创 JAVA程序设计:翻转对(LeetCode:493)

给定一个数组nums,如果i < j且nums[i] > 2*nums[j]我们就将(i, j)称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。示例 1:输入: [1,3,2,3,1]输出: 2示例 2:输入: [2,4,3,5,1]输出: 3注意:给定数组的长度不会超过50000。输入数组中的所有数字都在32位整数的表示范围内...

2019-12-08 17:24:07 465

原创 JAVA程序设计:递增子序列(LeetCode:491)

给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是[-100,100]。给定数组中可能包含重复...

2019-12-07 21:19:50 534

原创 JAVA程序设计:祖玛游戏(LeetCode:488)

回忆一下祖玛游戏。现在桌上有一串球,颜色有红色(R),黄色(Y),蓝色(B),绿色(G),还有白色(W)。 现在你手里也有几个球。每一次,你可以从手里的球选一个,然后把这个球插入到一串球中的某个位置上(包括最左端,最右端)。接着,如果有出现三个或者三个以上颜色相同的球相连的话,就把它们移除掉。重复这一步骤直到桌上所有的球都被移除。找到插入并可以移除掉桌上所有球所需的最少的球数。如果不能移除...

2019-12-07 19:49:47 1063

原创 JAVA程序设计: 预测赢家(LeetCode:486)

给定一个表示分数的非负整数数组。 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例 1:输入: [1, 5, 2]输出:...

2019-12-07 14:07:01 389

原创 JAVA程序设计:最小好进制(LeetCode:483)

对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称k(k>=2)是 n 的一个好进制。以字符串的形式给出 n, 以字符串的形式返回 n 的最小好进制。示例 1:输入:"13"输出:"3"解释:13 的 3 进制是 111。示例 2:输入:"4681"输出:"8"解释:4681 的 8 进制是 11111。示例 3:输入:"1...

2019-12-06 19:54:49 314

原创 JAVA程序设计:滑动窗口中位数(LeetCode:480)

中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是3[2,3],中位数是 (2 + 3) / 2 = 2.5给出一个数组 nums,有一个大小为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出由它们组成的...

2019-12-05 16:54:49 656

原创 JAVA程序设计:最大回文数乘积 (LeetCode:479)

你需要找到由两个 n 位数的乘积组成的最大回文数。由于结果会很大,你只需返回最大回文数 mod 1337得到的结果。示例:输入: 2输出: 987解释: 99 x 91 = 9009, 9009 % 1337 = 987说明:n 的取值范围为[1,8]。方法一:打表哈哈哈,n只有8,一个一个试出来就行。class Solution { public ...

2019-12-05 09:13:54 516

原创 JAVA程序设计:在圆内随机生成点(LeetCode:478)

给定圆的半径和圆心的 x、y 坐标,写一个在圆中产生均匀随机点的函数randPoint。说明:输入值和输出值都将是浮点数。圆的半径和圆心的 x、y 坐标将作为参数传递给类的构造函数。圆周上的点也认为是在圆中。randPoint返回一个包含随机点的x坐标和y坐标的大小为2的数组。示例 1:输入:["Solution","randPoint","randPoint","r...

2019-12-04 19:01:48 2016 4

原创 JAVA程序设计:汉明距离总和(LeetCode:477)

两个整数的汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) +...

2019-12-04 13:36:24 435 1

原创 JAVA程序设计:连接词(LeetCode:472)

给定一个不含重复单词的列表,编写一个程序,返回给定单词列表中所有的连接词。连接词的定义为:一个字符串完全是由至少两个给定数组中的单词组成的。示例:输入: ["cat","cats","catsdogcats","dog","dogcatsdog","hippopotamuses","rat","ratcatdogcat"]输出: ["catsdogcats","dogcatsdog...

2019-12-02 20:43:12 643

原创 LeetCode第165场周赛:1278. 分割回文串 III(动态规划)

给你一个由小写字母组成的字符串s,和一个整数k。请你按下面的要求分割字符串:首先,你可以将s中的部分字符修改为其他的小写英文字母。 接着,你需要把s分割成k个非空且不相交的子串,并且每个子串都是回文串。请返回以这种方式分割字符串所需修改的最少字符数。示例 1:输入:s = "abc", k = 2输出:1解释:你可以把字符串分割成 "ab" 和 "c...

2019-12-02 19:35:54 484

原创 LeetCode第165场周赛:1277. 统计全为 1 的正方形子矩阵(预处理)

给你一个m * n的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例 1:输入:matrix =[[0,1,1,1],[1,1,1,1],[0,1,1,1]]输出:15解释:边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = 1...

2019-12-02 19:34:04 331

原创 第 14 场双周赛:1274. 矩形内船只的数目(分治)

(此题是 交互式问题)在用笛卡尔坐标系表示的二维海平面上,有一些船。每一艘船都在一个整数点上,且每一个整数点最多只有 1 艘船。有一个函数Sea.hasShips(topRight, bottomLeft),输入参数为右上角和左下角两个点的坐标,当且仅当这两个点所表示的矩形区域(包含边界)内至少有一艘船时,这个函数才返回true,否则返回false 。给你矩形的右上角to...

2019-12-02 19:20:15 358

空空如也

空空如也

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

TA关注的人

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