百练OJ与leetcode解题代码分享
文章平均质量分 54
本专栏记录了本人在百练OJ与leetcode上练习的代码
康雨城
Talk is cheap, show me the code
展开
-
计算完全二叉树的节点个数
计算完全二叉树的节点个数原创 2023-03-11 09:00:00 · 211 阅读 · 1 评论 -
Leetcode-473. 火柴拼正方形:一个4X15的皇后问题(其实就是一个回溯法)
第一,目标就是把数组里面的数,分到四个堆里面。第二,就是把每个数分到不同的堆里面进行尝试,直到最后都分配完成了,此时判断能否满足要求,第三,在回溯尝试的过程中,对于已经超出总数的25%的就直接停止,不用继续回溯了。原创 2022-06-02 20:30:00 · 272 阅读 · 0 评论 -
Leetcode第 79 场双周赛-完成所有题目
Leetcode第 79 场双周赛判断一个数的数字计数是否等于数位的值最多单词数的发件人道路的最大总重要性以组为单位订音乐会的门票原创 2022-05-30 00:16:57 · 466 阅读 · 0 评论 -
Leetcode675. 为高尔夫比赛砍树:优先队列+广度优先找最短路径
题目连接675. 为高尔夫比赛砍树题目描述解题思路当一个图给出来的时候,砍树路径就已经确定了,是根据树的高度进行排序的。那么每次的行走的起点和重点也就确定了,只需要计算从起点到重点的最小值即可。第一步,遍历整个图,将所有有树的节点假如优先队列。第二步,从(0,0)起点开始,逐步从优先队列中取点。第三步,取出的两个点,通过广度优先算法,计算出长度,即可。解题代码import com.eclipsesource.json.JsonArray;import ..原创 2022-05-24 20:53:05 · 401 阅读 · 0 评论 -
LeetCode第 3 场双周赛(2019.6.29)第一题:小于 K 的两数之和
给你一个整数数组A和一个整数K,请在该数组中找出两个元素,使它们的和小于K但尽可能地接近K,返回这两个元素的和。如不存在这样的两个元素,请返回-1。原创 2019-06-30 00:31:20 · 365 阅读 · 0 评论 -
Leetcode12. 整数转罗马数字(C++)
题目规定,是1-3999四个数。也就是最大就是MMMM,因此,将个位、十位、百位、千位的数字分别对应上相应的数字即可。原创 2020-09-09 23:45:29 · 292 阅读 · 0 评论 -
Leetcode-520. 检测大写字母
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "...原创 2019-07-05 12:31:42 · 274 阅读 · 0 评论 -
Leetcode-13. 罗马数字转整数(C++)
值是简单判断下字符的下一位,如果和下一位能够组成一个数,那就组,不能的话,就直接计算本身的值。原创 2020-09-08 20:44:09 · 361 阅读 · 0 评论 -
Leetcode-322. 零钱兑换个人答案与官方答案的一个对比(以及对测试用例的思考)
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。原创 2019-07-05 16:22:18 · 762 阅读 · 0 评论 -
Leetcode-第 73 场双周赛
2190. 数组中紧跟 key 之后出现最频繁的数字 。 2191. 将杂乱无章的数字排序 。 2192. 有向无环图中一个节点的所有祖先 。 2193. 得到回文串的最少操作次数原创 2022-03-09 23:05:13 · 315 阅读 · 0 评论 -
Leetcode-第 283 场周赛
2194. Excel 表中某个范围内的单元格 2195. 向数组中追加 K 个整数 2196. 根据描述创建二叉树 2197. 替换数组中的非互质数原创 2022-03-08 20:15:28 · 263 阅读 · 0 评论 -
2022年2月2日刷2道简单题目过初二:一道是Leetcode-2022,另一道是Leetcod2000
2022. 将一维数组转变成二维数组2000. 反转单词前缀原创 2022-02-02 20:00:00 · 386 阅读 · 0 评论 -
Leetcode70场双周赛-第四题2147. 分隔长廊的方案数
进行一轮遍历,每次循环中,找三把椅子。记录第三把椅子的位置。只有在第三把椅子和第二把椅子之间可以放屏风,这两把椅子之间有可以通过下标相减得出。假如找不到第一把、第二把椅子,那就是0。假如找不到第三把,那就可以结束了。原创 2022-01-26 19:15:00 · 195 阅读 · 0 评论 -
Leetcode70场双周赛-第三题2146. 价格范围内最高排名的 K 样物品
核心办法是:BFS+优先队列第一个思想,就是从起点开始,向四周进行BFS。需要注意的是记录是否访问viewed的数组。第二个思想,排序,按照BFS的方式遍历之后,先遍历到的层级的点,一定是距离最小的。那么,就要考虑相同层级的点之间如何排序。这个排序的规则已经由题目规定,按照价格、坐标来排序。排序的关键就是写好优先队列的排序方法。原创 2022-01-26 19:00:00 · 368 阅读 · 0 评论 -
Leetcode70场双周赛-第二题2145.统计隐藏数组数目
解题思路第一步,假设第一个数字是0第二步,遍历数组,在假设第一个数是0的前提下,寻找数组的最大值,和最小值。第三步,看看最大值和最小值的差与给定最大值和最小值的差做一个计算。原创 2022-01-25 18:53:00 · 239 阅读 · 0 评论 -
Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销
第一步,进行排序。第二步,从最后一个往前找,每次找三次。第三步,看最后还剩几个,最后只能剩1个2个0个剩0个刚好结束,剩1个或两个,就直接都买下。原创 2022-01-25 18:51:26 · 201 阅读 · 0 评论 -
Leetcode第 276 场周赛-第四题2141. 同时运行 N 台电脑的最长时间
参考抄袭了一个大佬的方法(1)对数组排序、求和(2)从大到小进行一次遍历,当发现你的电池容量已经超过了平均值,那这个电池就只能为一台电脑充电到永远。让后将该电池直接移除,需要充电的电脑也不用管了。原创 2022-01-17 20:00:00 · 434 阅读 · 0 评论 -
Leetcode第 276 场周赛-第三题2140. 解决智力问题
第一层级:依次从每个问题开始,往下找最大值。例如事例二,从问题0开始,跳过了问题1,然后问题就简化成了从问题3,4,5里面重新选择一个开始。第二层级:假如按照第一层级,会有大量的重复计算。需要把计算过的子问题做一个记录。假如你从问题0,问题1,问题2, 都可以跳到问题3,那问题3之后的子问题的解决是一样的,因此需要记录问题开始的最大值。第三层级:假如你在计算子问题的时候,你需要计算一个最大值。例如,你的问题很多,在计算问题next到末尾的最大值的时候,很可能最大值已经计算过了,因此,对该最大值也做一个记录原创 2022-01-17 20:00:00 · 253 阅读 · 0 评论 -
Leetcode第 276 场周赛-第二题2139. 得到目标值的最少行动次数
拿到题目冷静分析,加倍一定是使1最快到达target,但是加倍次数有限。再次冷静分析,1加倍到2 和 5加倍到10,一次加倍,肯定是数越大,收益越大。因此,需要将加倍的机会给更大的数。当拿到19的时候,把加倍机会首先给到9因此,要从target开始逆推到1更为合适。如果是奇数,那么先做个减一操作,再折半如果是偶数,直接折半当加倍次数消耗光了,其余的就是增加了原创 2022-01-17 20:00:00 · 283 阅读 · 0 评论 -
Leetcode第 276 场周赛-第一题5980. 将字符串拆分为若干长度为 k 的组
5980. 将字符串拆分为若干长度为 k 的组 - 力扣(LeetCode) (leetcode-cn.com)解题思路原本以为是几行代码就搞定了,但写起来还是有点复杂,功力还是不够原创 2022-01-18 12:28:18 · 235 阅读 · 0 评论 -
Leetcode69场双周赛-第四题5931. 用邮票贴满网格图
查找标志为0的点,尝试以该点为邮票的左上角,直到尝试为以该点为邮票的右下角.如果能放邮票,并覆盖该为0 的点,则把覆盖的点标志为2。如果不能,直接返回false.原创 2022-01-09 16:34:51 · 454 阅读 · 0 评论 -
Leetcode69场双周赛-第三题5962. 连接两字母单词得到的最长回文串
定义map和sameMap。如果两个字母一样,就看sameMap里面有没有记录,有的话把该记录取出来,结果总数+4,没有的话,放入sameMap。 如果两个字母不一样,把两个字母倒转过来,就看map里面有没有倒转后的记录, 有的话把该记录数-1,结果总数+4, 没有的话,把未倒转的结果放入map原创 2022-01-09 16:12:36 · 431 阅读 · 0 评论 -
Leetcode69场双周赛-第二题5961.链表最大孪生和
开始的时候,可能想到快慢指针、想到栈等等,但后来发现,只需要将链表中的数字转存到ArrayList里面,然后遍历,遍历到一半就可以了。原创 2022-01-09 15:58:26 · 366 阅读 · 0 评论 -
Leetcode69场双周赛-第一题5960:标题首字母大写
首先将字符串按照空格进行切分,然后依据度对字符串做不同的处理原创 2022-01-09 15:52:35 · 299 阅读 · 0 评论 -
Leetcode-199二叉树的右视图(二叉树左视图)
采用一个队列+计数的方法,每个层次的遍历,之前,都先统计一下这一层有多少个节点。队列有n个节点,当这一层级的第n个节目点出栈的时候,将该节点计入结果。原创 2021-11-18 13:40:32 · 626 阅读 · 2 评论 -
Leetcode-5846.周赛 找到数组的中间位置
题目给你一个下标从0开始的整数数组nums,请你找到最左边的中间位置middleIndex(也就是所有可能中间位置下标最小的一个)。中间位置middleIndex是满足nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1]的数组下标。如果middleIndex == 0,左边部分的和定义为...原创 2021-09-04 23:22:52 · 159 阅读 · 0 评论 -
数组中出现次数超过一半的数字
题目来源链接:https://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a92163来源:牛客网数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000,0<=数组元素<=100.原创 2021-09-02 19:44:32 · 70 阅读 · 0 评论 -
Leetcode周赛5827. 检查操作是否合法
傻傻的遍历八个方向原创 2021-08-08 00:21:36 · 155 阅读 · 0 评论 -
Leetcode周赛5193. 删除字符使字符串变好
简简单单原创 2021-08-08 00:18:53 · 259 阅读 · 0 评论 -
Leetcode987 二叉树的垂序遍历
第一步:计算出所有节点的坐标第二步:按照顺序输出这些坐标所对应的值原创 2021-07-31 15:41:49 · 100 阅读 · 0 评论 -
LeetCode - 4. 寻找两个正序数组的中位数
题目描述给定两个大小为 m 和 n 的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。原创 2020-11-03 20:20:28 · 187 阅读 · 0 评论 -
百练OJ:1013:Counterfeit Dollar(假币)
天平称三次硬币,找出那一枚假硬币原创 2020-07-26 23:57:34 · 651 阅读 · 0 评论 -
Leetcode7 :整数反转(JAVA)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。原创 2020-07-25 00:48:52 · 262 阅读 · 0 评论 -
Leetcode:169. 求众数
给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。原创 2019-05-28 20:04:30 · 250 阅读 · 0 评论 -
Leetcode-435:无重叠区间
题目链接Leetcode-435:无重叠区间题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间...原创 2019-04-26 21:22:16 · 370 阅读 · 0 评论 -
LeetCode:64. 最小路径和
题目链接64. 最小路径和题目描述给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解题思路动态规划该问题可分解为多个子问题...原创 2019-02-14 09:14:50 · 252 阅读 · 0 评论 -
LeetCode:63. 不同路径 II
题目链接63. 不同路径 II题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?start ...原创 2019-02-13 14:19:22 · 230 阅读 · 0 评论 -
LeetCode:85. 最大矩形
给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。原创 2019-02-14 09:37:48 · 2575 阅读 · 1 评论 -
LeetCode:62. 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?原创 2019-02-13 11:43:40 · 274 阅读 · 0 评论 -
百练OJ:4150:上机
一共有N个机位,编号1到N。这时有N位同学们陆陆续续来到机房,一个一个按照顺序坐在这排机位上。聪明的jbr想知道怎么安排座位的顺序,可以使这N位同学获得能力值的和最大呢原创 2019-02-13 11:21:29 · 581 阅读 · 0 评论