- 博客(8)
- 收藏
- 关注
原创 二维数组区间问题---Leetcode
986. 区间列表的交集 给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且已经排序。 返回这两个区间列表的交集。 示例: 输入:A = [[0,2],[5,10],[13,23],[24,25]], B = [[1,5],[8,12],[15,24],[25,26]] 输出:[[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]] class S...
2019-11-06 19:17:50
594
原创 Leetcode的数组和问题
1.最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 解法:双指针(以nums[index] 为第一个数,找到其余的两个数。固定住Nums[index]) class Solution { public int threeSumClos...
2019-11-05 19:51:32
168
原创 双端队列--初用
给定数组arr和整数num,共返回有多少个子数组满足如下情况:子数组中的最大值减去最小值小于或等于num。 思路: 双端队列+双指针+数学技巧 用两个双端队列分别更新(双指针区间内的最大值 以及最小值)。一个队列专门存储区间内的最大值、另一个队列则存储最小值。指针在移动的过程,不断更新两队列的结构。 数学技巧:1:一个元素较多的数组,如果满足max - min < num ,那么这个大数组的...
2019-10-07 15:14:14
165
原创 入门---暴力递归改动态规划
题目:有一排正数,玩家A和玩家B都可以看到。 每位玩家在拿走数字的时候,都只能从最左和最右的数中选择一个。 玩家A先拿,玩家B再拿,两人交替拿走所有的数字, 两人都力争自己拿到的数的总和比对方多。请返回最后获胜者的分数。 例如: 5,2,3,4 玩家A先拿,当前他只能拿走5或者4。 如果玩家A拿走5,那么剩下2,3,4。轮到玩家B,此时玩家B可以选择2或4中的一个,… 如果玩家A拿走4,那么剩下5...
2019-10-04 10:28:33
133
原创 数组---哈希问题求小于等于K的最长子数组
给定一个数组,值可以为正、负和0,请返回累加和小于等于k的最长子数组长度。 public static int maxLengthAwesome(int[] arr, int k) { if (arr == null || arr.length == 0) { return 0; } int[] sums = new int[arr.length]; //以下标i开头的最小...
2019-10-03 22:09:46
303
原创 数组---哈希表
给定一个数组,**值可以为正、负和0,**请返回累加和为给定值k的最长子数组长度。 {10 ,1 ,1 ,1, 1, 5 ,1 ,1,-10} target = 11; 解法 求出以下标为i结尾的和 (以及求出以下标为j 结尾的和) 如果 sum [i] - sum[j]= target 那么长度为( i - j + 1) 我们用哈希表记录当访问到index的和(求最长,所以记录第...
2019-10-03 21:30:46
214
原创 数组 -- 双指针问题
给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。 例如 target = 11 nums = { 10 ,1 ,1 ,1, 1, 5 ,1 ,1} 返回 7 双指针 : public static int getMaxLength(int[] arr, int k) { if (arr == null || arr.length == 0 || k <= 0) ...
2019-10-03 20:07:52
165
原创 已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。
题目:已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。 例子: ()()() 返回true ())() false 根据观察 遍历的过程中,当右括号数大于左括号数,直接返回false 遍历结束时 :1.当左括号数等于右括号数 返回true 2.当左括号数大于右括号数 返回false 方法一 定义一个变量记录遍历过程 int count 当遇...
2019-10-03 19:26:37
1463
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人