自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Inmaturity_7的博客

这只是我的日记博客,不喜勿喷

  • 博客(148)
  • 资源 (1)
  • 收藏
  • 关注

原创 算法练习帖--69--数据流中的第 K 大元素(java)

数据流中的第 K 大元素(java)一、题目简介设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。(题目来源:力扣(LeetCode))示例:输入:["KthLargest", "add"

2021-02-11 15:28:11 18 1

原创 弗洛伊德算法学习(Java)

弗洛伊德算法学习(Java)学习视频:尚硅谷韩老师java讲解数据结构和算法一、 弗洛伊德(Floyd)算法介绍和 Dijkstra 算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法 名称以创始人之一、1978 年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名弗洛伊德算法(Floyd)计算图中各个顶点之间的最短路径迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径。弗洛伊德算法 VS 迪杰斯特拉算法:迪杰斯特拉算法通过选定的被访

2021-02-08 20:40:43 50 1

原创 算法练习帖--68--最长湍流子数组(Java)

最长湍流子数组一、题目简介当 A 的子数组 A[i], A[i+1], …, A[j] 满足下列条件时,我们称其为湍流子数组:若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] < A[k+1]。也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数

2021-02-08 14:40:52 31

原创 算法练习帖--67--可获得的最大点数(Java)

可获得的最大点数一、题目简介几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。(题目来源:力扣(LeetCode))示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点

2021-02-06 15:34:51 19

原创 算法练习帖--66--最小体力消耗路径(Java)

最小体力消耗路径(Java)一、题目简介你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝对值 的 最

2021-02-05 17:17:40 41 2

原创 迪杰斯特拉(Dijkstra)算法学习(Java)

迪杰斯特拉(Dijkstra)算法学习(Java)一、迪杰斯特拉(Dijkstra)算法介绍迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个结点到其他结点的最短路径。它的主要特点是以 起始点为中心向外层层扩展**(广度优先搜索思想)**,直到扩展到终点为止。二、迪杰斯特拉(Dijkstra)算法过程设置出发顶点为 v,顶点集合 V{v1,v2,vi…},v 到 V 中各顶点的距离构成距离集合 Dis,Dis{d1,d2,di…},Dis 集合记录着 v 到图中各顶点的距离(到自身

2021-02-05 15:01:46 28

原创 算法练习帖--65--尽可能使字符串相等(Java)

尽可能使字符串相等一、题目简介给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串,则返回可以转化的最大长度。如果 s 中没有子字符串可以转化成 t 中对应的子字符串,

2021-02-05 10:54:31 24

原创 算法练习帖--64--交换字符串中的元素(Java)

交换字符串中的元素(Java)一、题目简介给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。(题目来源:力扣(LeetCode))示例 1:输入:s = "dcab", pairs = [[0,3],[1,2]]输出:"bacd"解释: 交换 s[0] 和 s[3]

2021-02-04 14:58:52 27

原创 克鲁斯卡尔算法学习(Java)

克鲁斯卡尔算法(Java)学习视频:尚硅谷韩老师java讲解数据结构和算法一、应用场景-公交站问题某城市新增 7 个站点(A, B, C, D, E, F, G) ,现在需要修路把 7 个站点连通各个站点的距离用边线表示(权) ,比如 A – B 距离 12 公里问:如何修路保证各个站点都能连通,并且总的修建公路总里程最短?二、克鲁斯卡尔算法介绍2.1、以城市公交站问题来图解说明 克鲁斯卡尔算法的原理和步骤:在含有 n 个顶点的连通图中选择 n-1 条边,构成一棵极小连通子图,并使该连

2021-02-03 20:31:40 25

原创 算法练习帖--63--冗余连接(Java)

冗余连接一、题目简介在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式

2021-02-02 22:02:09 16

原创 算法练习帖--62--替换后的最长重复字符(Java)

替换后的最长重复字符一、题目简介给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。(题目来源:力扣(LeetCode))示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k = 1输出:4解释:将中间的一个'A'替换为'B',字符串变

2021-02-02 12:25:41 64 3

原创 算法练习帖--61--省份数量(Java)

省份数量一、题目描述有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。(题目来源:力扣(

2021-02-01 21:36:14 38

原创 普里姆算法学习(Java)

普里姆算法学习(Java)学习视频:尚硅谷韩老师java讲解数据结构和算法一、应用场景-修路问题1.1、看一个应用场景和问题:有胜利乡有 7 个村庄(A, B, C, D, E, F, G) ,现在需要修路把 7 个村庄连通各个村庄的距离用边线表示(权) ,比如 A – B 距离 5 公里问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?思路: 将 10 条边,连接即可,但是总的里程数不是最小.正确的思路:就是尽可能的选择少的路线,并且每条路线最小,保证总里程数最少二、最

2021-02-01 15:35:17 19

原创 算法练习帖--60--公平的糖果棒交换(Java)

公平的糖果棒交换一、题目描述爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如果有多个答案,你可以返回其中任何一个。保证答案存在。(题目来源:力扣(LeetCod

2021-02-01 10:56:17 23

原创 算法练习帖--59--相似字符串组(Java)

相似字符串组一、题目简介如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,“tars” 和 “rats” 是相似的 (交换 0 与 2 的位置); “rats” 和 “arts” 也是相似的,但是 “star” 不与 “tars”,“rats”,或 “arts” 相似。总之,它们通过相似性形成了两个关联组:{“tars”, “rats”, “arts”} 和 {“star”}。注意,“tar

2021-01-31 20:32:20 20

原创 贪心算法--集合覆盖问题(Java)

贪心算法–集合覆盖问题(Java)学习视频:尚硅谷韩老师java讲解数据结构和算法一、贪心算法介绍1.贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而 希望能够导致结果是最好或者最优的算法2.贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果二、贪心算法最佳应用-集合覆盖2.1、题目描述假设存在如下表的需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有 的地区都可以接收

2021-01-30 20:21:32 41

转载 KMP算法学习(Java)

KMP算法学习(Java)学习视频:尚硅谷韩老师Java讲解数据结构与算法学习资料:很详尽KMP算法(厉害)一、代码实现1:最大长度表package com.lxf.kmp;public class KMP { public static void main(String[] args) { String str1="BBC ABCDAB ABCDABCDABDE"; String str2="ABCDABD"; System.out.p

2021-01-30 17:25:09 13

原创 动态规划的四个最佳实践--Leecode的四个股票题(Java)

动态规划的四个最佳实践–Leecode的四个股票题(Java)一、 买卖股票的最佳时机(不是动规,作为引入)1.1、题目简介给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。(题目来源:力扣(LeetCode))示例 1:输入:[7,1,5,3,6

2021-01-30 11:55:43 37

原创 动态规划算法--0/1背包问题求解(Java)

动态规划算法–0/1背包问题求解(Java)学习视频:尚硅谷韩老师Java讲解数据结构与算法一、动态规划算法介绍动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解 的处理算法动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这 些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。 ( 即下一个子 阶段的求解是建立在上一个子阶段

2021-01-28 12:46:22 53

原创 算法练习帖--58--寻找数组的中心索引(Java)

寻找数组的中心索引一、题目描述给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。(题目来源:力扣(LeetCode))示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:索引 3 (nums[3] = 6) 的左侧数之和 (1 +

2021-01-28 10:54:13 13

原创 算法练习帖--57--保证图可完全遍历(Java)

保证图可完全遍历(并查集)一、题目简介Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alic

2021-01-27 19:53:25 42 2

原创 算法练习帖--56--由斜杠划分区域(Java)

由斜杠划分区域(并查集)一、题目简介在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。(题目来源:力扣(LeetCode))示例 1:输入:[ " /", "/ "]输出:2解释:2x2 网格如下:示例 2:输入:[ " /", " "]输出:1解释:2x2 网格如下:示例

2021-01-26 21:39:01 22

原创 算法练习帖--55--等价多米诺骨牌对的数量(Java)

等价多米诺骨牌对的数量一、题目简介给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 ac 且 bd,或是 ad 且 bc。在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价的

2021-01-26 15:10:20 61 1

原创 分治算法--汉诺塔问题求解(Java)

分治算法–汉诺塔问题求解(Java)一、分治算法介绍分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或 相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题 的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……分治算法可以求解的一些经典问题:二分搜索大整数乘法棋盘覆盖归并排序快速排序线性时间选择最接近点对问题循环赛日程表汉诺塔二、分治

2021-01-25 20:54:19 50 4

原创 算法练习帖--54--岛屿数量(Java)

岛屿数量(DFS、BFS、并查集)一、题目简介给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。(题目来源:力扣(LeetCode))示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0",

2021-01-25 18:48:51 42 1

原创 算法练习帖--53--将整数按权重排序(Java)

将整数按权重排序一、题目简介我们将整数 x 的 权重 定义为按照下述规则将 x 变成 1 所需要的步数:如果 x 是偶数,那么 x = x / 2如果 x 是奇数,那么 x = 3 * x + 1比方说,x=3 的权重为 7 。因为 3 需要 7 步变成 1 (3 --> 10 --> 5 --> 16 --> 8 --> 4 --> 2 --> 1)。给你三个整数 lo, hi 和 k 。你的任务是将区间 [lo, hi] 之间的整数按照它们的权重 升

2021-01-24 19:16:21 58

原创 算法练习帖--52--找到小镇的法官(Java)

找到小镇的法官一、题目描述在一个小镇里,按从 1 到 N 标记了 N 个人。传言称,这些人中有一个是小镇上的秘密法官。如果小镇的法官真的存在,那么:小镇的法官不相信任何人。每个人(除了小镇法官外)都信任小镇的法官。只有一个人同时满足属性 1 和属性 2 。给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的标记。否则,返回 -1。(题目来源:力扣(LeetCode)

2021-01-24 16:13:54 19

原创 数据结构和算法学习笔记七_图

数据结构和算法学习笔记七_图学习视频:尚硅谷韩老师Java讲解数据结构与算法一、基本介绍1.1、图的基本概念:图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图:1.2、图的常用概念:顶点(vertex)边(edge)路径无向图:有向图:带权图:1.3、图的表示方式:图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)。邻接矩阵邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点

2021-01-24 15:22:38 48

原创 算法练习帖--51--汇总区间(Java)

汇总区间一、题目简介给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b(题目来源:力扣(LeetCode))示例 1:输入:nums = [0,1,2,4,5,7]输出:["0->2","4-&g

2021-01-10 21:35:02 33

原创 数据结构和算法学习笔记六_树结构的实际应用(2)

数据结构和算法学习笔记六_树结构的实际应用(2)一、二叉排序树1.1、二叉排序树基本介绍二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点比如数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为:1.2、二叉排序树创建和遍历代码实现:package com.lxf.binaryso

2021-01-10 18:10:50 24

原创 数据结构和算法学习笔记五_树结构的实际应用(1)

数据结构和算法学习笔记五_树结构的实际应用(1)一、 堆排序1.1、 堆排序基本介绍堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn),它也是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆大顶堆举例说明:小顶堆举例说明 :一

2021-01-10 18:06:02 21

原创 算法练习帖--50--较大分组的位置(Java)

较大分组的位置在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 “xxxx” 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组 。找到每一个 较大分组 的区间,按起始位置下标

2021-01-05 21:01:30 14

原创 数据结构和算法学习笔记四_树基础(Java)

数据结构和算法学习笔记四_树基础学习视频:尚硅谷韩老师Java讲解数据结构与算法一、树树示意图:树的常用术语(结合示意图理解): 1) 节点 2) 根节点 3) 父节点 4) 子节点 5) 叶子节点 (没有子节点的节点) 6) 节点的权(节点值) 7) 路径(从 root 节点找到该节点的路线) 8) 层 9) 子树 10) 树的高度(最大层数) 11) 森林 :多颗子树构成森林二、二叉树2.1、二叉树简述树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉

2021-01-03 20:53:03 45

原创 算法练习帖--49--滑动窗口最大值(Java)

滑动窗口最大值一、题目简介给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。(题目来源:力扣(LeetCode))示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----

2021-01-02 14:15:59 31

原创 算法练习帖--48--计数质数(Java)

计数质数一、题目简介统计所有小于非负整数 n 的质数的数量(题目来源:力扣(LeetCode))示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106二、解决方法1. 暴力法class Solution { public int countPrimes(int n) {

2021-01-01 21:18:36 23

原创 算法练习帖--47--种花问题(Java)

种花问题一、题目描述假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。(力扣(LeetCode))示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出: True示例 2:输入: flowerbed = [1,

2021-01-01 17:48:49 99 1

原创 算法练习贴--46--无重叠区间(Java)

package com.lxf;import java.util.Arrays;import java.util.Comparator;public class EraseOverlapIntervals { public static void main(String[] args) { System.out.println(eraseOverlapIntervals(new int[][]{{1,2},{2,3},{3,4},{1,3}})); } public static

2020-12-31 17:47:37 26

原创 算法练习帖--45--最后一块石头的重量(Java)

最后一块石头的重量一、题目描述有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。(题目来源:力扣(LeetCode)) 示例:输入:[2,7,4,

2020-12-30 22:57:41 21

原创 算法练习帖--44--按要求补齐数组(Java)

按要求补齐数组一、题目简介给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。(题目来源:力扣(LeetCode))示例 1:输入: nums = [1,3], n = 6输出: 1 解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到

2020-12-29 22:42:51 24

原创 算法练习帖--43--买卖股票的最佳时机 IV(Java)

package com.lxf;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeMap;pu

2020-12-28 16:22:41 16

HuGongTrain123456_files.zip

仿12306页面(相似度98%),文件名、Logo、网站图标都换了,大部分小图标也换了,除首页为动态界面外,其它都为静态页面,下载后只能用于学习,请勿商用!!!

2020-05-01

空空如也

空空如也

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

TA关注的人 TA的粉丝

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