![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 79
@@老胡
思考与实践并行,努力成为发现和解决问题的人
展开
-
LeetCode 216. 组合总和 III java
题目:找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]12示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]12解析:相比于前面两道用回溯算法解题的题目:分割回文串和复原IP地址,这道题显得简单一些,并且也是更加典型的回溯解法。可以结转载 2020-09-13 21:19:11 · 309 阅读 · 0 评论 -
2021-07-07&08 力扣 每日一题-使用哈希表解决问题
大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 109 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输出:4解释.原创 2021-07-07 17:38:13 · 120 阅读 · 0 评论 -
2021-07-06 力扣每日一题
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应.原创 2021-07-06 09:52:44 · 201 阅读 · 0 评论 -
LeetCode_1403
package number5;/*先排序再选元素*/import java.util.ArrayList;import java.util.Arrays;import java.util.List;//给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。//如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。//与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中原创 2020-10-09 17:04:23 · 103 阅读 · 0 评论 -
LeetCode_1282
//有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。//给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,//请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。//你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。//示例 1://输入:groupSizes = [3,3,3,3,3,1,3]//输出:[[5],[0,1,2],[3,4,6]]//解释原创 2020-10-08 10:36:51 · 137 阅读 · 0 评论 -
LeetCode_1221
package number5;//贪心算法import java.util.Stack;//在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。//给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。//返回可以通过分割得到的平衡字符串的最大数量。//示例 1://输入:s = "RLRRLLRLRL"//输出:4//解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。//示例 2://输原创 2020-10-07 23:35:32 · 93 阅读 · 0 评论 -
LeetCode_55
//思路就是:如果当前下标和它对应的数值的和要比数组最后一个数据的下标要大,那么就能到达最远的地方package number5;//给定一个非负整数数组,你最初位于数组的第一个位置。//数组中的每个元素代表你在该位置可以跳跃的最大长度。//判断你是否能够到达最后一个位置。//示例 1://输入: [2,3,1,1,4]//输出: true//解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。//示例 2://输入: [3,2,1,原创 2020-10-07 23:34:07 · 62 阅读 · 0 评论 -
LeetCode_215
package number4;//在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。//示例 1://输入: [3,2,1,5,6,4] 和 k = 2//输出: 5//示例 2://输入: [3,2,3,1,2,4,5,5,6] 和 k = 4//输出: 4//说明://你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。/** * 思路:无论数据怎么变换,排序(降序)后第k大的数据都是在第k-1的位原创 2020-10-04 20:52:10 · 106 阅读 · 0 评论 -
LeetCode_215
package number4;//在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。//示例 1://输入: [3,2,1,5,6,4] 和 k = 2//输出: 5//示例 2://输入: [3,2,3,1,2,4,5,5,6] 和 k = 4//输出: 4//说明://你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。public class Solution5 {public stat原创 2020-10-03 19:34:21 · 51 阅读 · 0 评论 -
LeetCode_169
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2/***求众数,如果一个数q数组的众数,那q一定是这个数组左边或者右边的众数*/private static int moreElement(int[] arr) { return result(arr,0,arr.len原创 2020-10-03 18:16:47 · 71 阅读 · 0 评论 -
LeetCode_53
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。/** * 数学思维:想要得到中间i到j之间的数据,就要用j项和减去i项和 */public static int maxSubArray(int[] nums) { if(nums.length==1) return nums[0];//当数组只有一个原创 2020-10-03 18:12:57 · 66 阅读 · 0 评论