友链朋友圈

力扣1984:学生分数的最小差值

2022年02月11日 力扣每日一题 题目 给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。 从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。 返回可能的 最小差值 。 示例 1: 输入:nums = [90], k = 1输出:0解释:选出 1 名学生的分数,仅有 1 种方法:- [90] 最高分和最低分之间的差值是 90 - 90 = 0可能的最小差值是 0 示例 2: 输入:nums = [9,4,1,7], k = 2输出:2解释:选出 2 名学生的分数,有 6 种方法:- [9,4,1,7] 最高分和最低分之间的差值是 9 - 4 = 5- [9,4,1,7] 最高分和最低分之间的差值是 9 - 1 = 8- [9,4,1,7] 最高分和最低分之间的差值是 9 - 7 = 2- [9,4,1,7] 最高分和最低分之间的差值是 4 - 1 = 3- [9,4,1,7] 最高分和最低分之间的差值是 7 - 4 = 3- [9,4,1,7] 最高分和最低分之间的差值是 7 - 1 = 6可能的最小差值是 2 提示: 1 <= k <= nums.length <= 1000 0 <= nums[i] <= 105 Related Topics 数组 排序 滑动窗口 个人解法 排序后,使用滑动窗口 {% tabs categories%} class Solution { public int minimumDifference(int[] nums, int k) { Arrays.sort(nums); int min = Integer.MAX_VALUE; for (int i = 0; i...

avatar 龙儿之家 发表于 2022年02月11日 13:35:01

个人网站加入到搜索引擎中

一般来说,搜索引擎中是不会收入你个人网站的,你可以试试用谷歌或者百度等其他搜索引擎看看,能不能收到你个人网站的相关页面? 如果搜索不到,你可以申请加入搜索引擎,这个是免费的,下面提供一些搜索引擎的提交地址: 谷歌博客搜索收录入口: http://www.google.com/addurl/ 百度收录入口: http://www.baidu.com/search/url_submit.html 必应Bing收录入口: https://www.bing.com/toolbox/submit-site-url 360搜索引擎登录入口: http://info.so.360.cn/site_submit.html 搜狗提交入口: http://www.sogou.com/feedback/urlfeedback.php 目前,我所知道的就只有,如果你有其他搜索引擎的提交地址,可以在评论区中留下搜索引擎名称和地址,万分感谢!

avatar 龙儿之家 发表于 2022年02月08日 18:26:58

力扣1219:黄金矿工

2022年02月05日 力扣每日一题 题目 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。 为了使收益最大化,矿工需要按以下规则来开采黄金: 每当矿工进入一个单元,就会收集该单元格中的所有黄金。 矿工每次可以从当前位置向上下左右四个方向走。 每个单元格只能被开采(进入)一次。 不得开采(进入)黄金数目为 0 的单元格。 矿工可以从网格中 任意一个 有黄金的单元格出发或者是停止。 示例 1: 输入:grid = [[0,6,0],[5,8,7],[0,9,0]]输出:24解释:[[0,6,0], [5,8,7], [0,9,0]]一种收集最多黄金的路线是:9 -> 8 -> 7。 示例 2: 输入:grid = [[1,0,7],[2,0,6],[3,4,5],[0,3,0],[9,0,20]]输出:28解释:[[1,0,7], [2,0,6], [3,4,5], [0,3,0], [9,0,20]]一种收集最多黄金的路线是:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7。 提示: 1 <= grid.length, grid[i].length <= 15 0 <= grid[i][j] <= 100 最多 25 个单元格中有黄金。 Related Topics 数组 回溯 矩阵 个人解法 {% tabs categories%} class Solution { int[] xl = new int[]{1, -1, 0, 0}; int[] yl = new int[]{0, 0, 1, -1}; public int getMaximumGold(int[][] grid) { ...

avatar 龙儿之家 发表于 2022年02月06日 12:37:26

seata1.4.1服务端部署及应用

seata1.4.1服务端部署及应用 springcloud-nacos-seata 分布式事务组件seata的使用demo,AT模式,集成nacos、springboot、springcloud、mybatis-plus、feign,数据库采用mysql demo中使用的相关版本号,具体请看代码。如果搭建个人demo不成功,验证是否是由版本导致,由于目前这几个项目更新比较频繁,版本稍有变化便会出现许多奇怪问题 seata 1.4.1 spring-cloud-alibaba-seata 2.2.0.RELEASE spring-cloud-starter-alibaba-nacos-discovery 2.1.1.RELEASE springboot 2.1.10.RELEASE springcloud Greenwich.SR4 1. 服务端配置 seata-server为release版本1.4.1,采用docker部署方式 https://github.com/seata/seata/releases/tag/v1.4.1) 1.1 docker拉取镜像 docker pull seataio/seata-server:1.4.1 1.2 启动临时容器 docker run --rm --name seata-server -d -p 8091:8091 seataio/seata-server:1.4.1 1.3 将配置文件拷贝出来 docker cp d5cd81d60189:/seata-server/resources/ ./conf/ 1.4 修改conf/registry.conf文件 修改文件,用nacos做注册中心和配置中心 vi ./conf/registry.conf 原始内容: registry { # file 、nacos 、eureka...

avatar 龙儿之家 发表于 2022年02月02日 09:37:59

波士顿矩阵

概述 模型概念

avatar Eurkon 发表于 2022年02月01日 10:00:00

力扣1688:比赛中的配对次数

2022年01月25日 力扣每日一题 题目 给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制: 如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。 如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。 返回在比赛中进行的配对次数,直到决出获胜队伍为止。 示例 1: 输入:n = 7输出:6解释:比赛详情:- 第 1 轮:队伍数 = 7 ,配对次数 = 3 ,4 支队伍晋级。- 第 2 轮:队伍数 = 4 ,配对次数 = 2 ,2 支队伍晋级。- 第 3 轮:队伍数 = 2 ,配对次数 = 1 ,决出 1 支获胜队伍。总配对次数 = 3 + 2 + 1 = 6 示例 2: 输入:n = 14输出:13解释:比赛详情:- 第 1 轮:队伍数 = 14 ,配对次数 = 7 ,7 支队伍晋级。- 第 2 轮:队伍数 = 7 ,配对次数 = 3 ,4 支队伍晋级。 - 第 3 轮:队伍数 = 4 ,配对次数 = 2 ,2 支队伍晋级。- 第 4 轮:队伍数 = 2 ,配对次数 = 1 ,决出 1 支获胜队伍。总配对次数 = 7 + 3 + 2 + 1 = 13 提示: 1 <= n <= 200 Related Topics 数学 模拟 个人解法 {% tabs categories%} class Solution { public int numberOfMatches(int n) { // 总配对次数 int sum = 0; while (n > 1) { if (n % 2 == 1) { ...

avatar 龙儿之家 发表于 2022年01月25日 13:57:48

力扣2045:到达目的地的第二短时间

2022年01月24日 力扣每日一题 题目 城市用一个 双向连通 图表示,图中有 n 个节点,从 1 到 n 编号(包含 1 和 n)。图中的边用一个二维整数数组 edges 表示,其中每个 edges[i] = [ui, vi] 表示一条节点 ui 和节点 vi 之间的双向连通边。每组节点对由 最多一条 边连通,顶点不存在连接到自身的边。穿过任意一条边的时间是 time 分钟。 每个节点都有一个交通信号灯,每 change 分钟改变一次,从绿色变成红色,再由红色变成绿色,循环往复。所有信号灯都 同时 改变。你可以在 任何时候 进入某个节点,但是 只能 在节点 信号灯是绿色时 才能离开。如果信号灯是 绿色 ,你 不能 在节点等待,必须离开。 第二小的值 是 严格大于 最小值的所有值中最小的值。 例如,[2, 3, 4] 中第二小的值是 3 ,而 [2, 2, 4] 中第二小的值是 4 。 给你 n、edges、time 和 change ,返回从节点 1 到节点 n 需要的 第二短时间 。 注意: 你可以 任意次 穿过任意顶点,包括 1 和 n 。 你可以假设在 启程时 ,所有信号灯刚刚变成 绿色 。 示例 1:         输入:n = 5, edges = [[1,2],[1,3],[1,4],[3,4],[4,5]], time = 3, change = 5输出:13解释:上面的左图展现了给出的城市交通图。右图中的蓝色路径是最短时间路径。花费的时间是:- 从节点 1 开始,总花费时间=0- 1 -> 4:3 分钟,总花费时间=3- 4 -> 5:3 分钟,总花费时间=6因此需要的最小时间是 6 分钟。右图中的红色路径是第二短时间路径。- 从节点 1 开始,总花费时间=0- 1 -> 3:3 分钟,总花费时间=3- 3 -> 4:3 分钟,总花费时间=6- 在节点...

avatar 龙儿之家 发表于 2022年01月24日 15:22:58

力扣1345:跳跃游戏 IV

2022年01月21日 力扣每日一题 题目 给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。 每一步,你可以从下标 i 跳到下标: i + 1 满足:i + 1 < arr.length i - 1 满足:i - 1 >= 0 j 满足:arr[i] == arr[j] 且 i != j 请你返回到达数组最后一个元素的下标处所需的 最少操作次数 。 注意:任何时候你都不能跳到数组外面。 示例 1: 输入:arr = [100,-23,-23,404,100,23,23,23,3,404]输出:3解释:那你需要跳跃 3 次,下标依次为 0 --> 4 --> 3 --> 9 。下标 9 为数组的最后一个元素的下标。 示例 2: 输入:arr = [7]输出:0解释:一开始就在最后一个元素处,所以你不需要跳跃。 示例 3: 输入:arr = [7,6,9,6,9,6,9,7]输出:1解释:你可以直接从下标 0 处跳到下标 7 处,也就是数组的最后一个元素处。 示例 4: 输入:arr = [6,1,9]输出:2 示例 5: 输入:arr = [11,22,7,7,7,7,7,7,7,22,13]输出:3 提示: 1 <= arr.length <= 5 * 10^4 -10^8 <= arr[i] <= 10^8 Related Topics 广度优先搜索 数组 哈希表 个人解法 {% tabs categories%} import java.util.*;class Solution { public int minJumps(int[] arr) { if (arr.length == 1) { return 0; } boolean[] use = new boolean[ar...

avatar 龙儿之家 发表于 2022年01月21日 16:26:26

力扣2029:石子游戏 IX

2022年01月20日 力扣每日一题 题目 Alice 和 Bob 再次设计了一款新的石子游戏。现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第 i 个石子的价值。 Alice 和 Bob 轮流进行自己的回合,Alice 先手。每一回合,玩家需要从 stones 中移除任一石子。 如果玩家移除石子后,导致 所有已移除石子 的价值 总和 可以被 3 整除,那么该玩家就 输掉游戏 。 如果不满足上一条,且移除后没有任何剩余的石子,那么 Bob 将会直接获胜(即便是在 Alice 的回合)。 假设两位玩家均采用 最佳 决策。如果 Alice 获胜,返回 true ;如果 Bob 获胜,返回 false 。 示例 1: 输入:stones = [2,1]输出:true解释:游戏进行如下:- 回合 1:Alice 可以移除任意一个石子。- 回合 2:Bob 移除剩下的石子。 已移除的石子的值总和为 1 + 2 = 3 且可以被 3 整除。因此,Bob 输,Alice 获胜。 示例 2: 输入:stones = [2]输出:false解释:Alice 会移除唯一一个石子,已移除石子的值总和为 2 。 由于所有石子都已移除,且值总和无法被 3 整除,Bob 获胜。 示例 3: 输入:stones = [5,1,2,4,3]输出:false解释:Bob 总会获胜。其中一种可能的游戏进行方式如下:- 回合 1:Alice 可以移除值为 1 的第 2 个石子。已移除石子值总和为 1 。- 回合 2:Bob 可以移除值为 3 的第 5 个石子。已移除石子值总和为 = 1 + 3 = 4 。- 回合 3:Alices 可以移除值为 4 的第 4 个石子。已移除石子值总和为 = 1 + 3 + 4 = 8 。- 回合 4:...

avatar 龙儿之家 发表于 2022年01月20日 10:56:54

力扣219:存在重复元素 II

2022年01月19日 力扣每日一题 题目 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。 示例 1: 输入:nums = [1,2,3,1], k = 3输出:true 示例 2: 输入:nums = [1,0,1,1], k = 1输出:true 示例 3: 输入:nums = [1,2,3,1,2,3], k = 2输出:false 提示: 1 <= nums.length <= 105 -109 <= nums[i] <= 109 0 <= k <= 105 Related Topics 数组 哈希表 滑动窗口 个人解法 {% tabs categories%} import java.util.HashMap;import java.util.Map;class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { if (k <= 0) { return false; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(nums[i]) && i - map.get(nums[i]) <= k) { return true; } map.put(nums[i...

avatar 龙儿之家 发表于 2022年01月19日 11:24:37