List<List<Integer>> kSum_Trim(int[] a, int target, int k) { List<List<Integer>> result = new ArrayList<>(); if (a == null || a.length < k || k < 2) re... ...
分类:
其他好文 时间:
2019-09-19 00:57:50
阅读次数:
117
题目 分析 发现,当子段[l,r]被取了出来,那么[l 1,r]、[l,r+1]一定也被取了出来。 那么,首先将[1,n]放入大顶堆,每次将堆顶的子段[l,r]取出来,因为它是堆顶,所以一定是最大的子段,输出它,并将[l+1,r]和[l,r 1]放进堆中。 一共就只用做k次就可以了。 ...
分类:
其他好文 时间:
2018-05-20 23:14:00
阅读次数:
234
1.ksum(ksum) 【问题描述】 Peter喜欢玩数组。NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组。 Peter求出了这个数组的所有子段和,并将这n(n+1)/2个数降序排序,他想 知道前k个数是什么。 【输入格式】 输入文件名为 ksum.in。 输入数据的第一行包含两 ...
分类:
其他好文 时间:
2017-09-02 09:36:45
阅读次数:
255
1.ksum 【问题描述】 Peter喜欢玩数组。NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组。 Peter求出了这个数组的所有子段和,并将这n(n+1)/2个数降序排序,他想 知道前k个数是什么。 【输入格式】 输入文件名为 ksum.in。 输入数据的第一行包含两个整数 n ...
分类:
其他好文 时间:
2017-08-19 22:28:16
阅读次数:
210
对于ksum 问题: 首先对nums 进行排序, 2sum, 用两个指针指p,q向头和尾, 如果之和大于target,q 向前移,如果之和小于target ,p向后移。如果等于加入结果中。 如果p>q 结束 3sum,用于指针i指向一个基准,定义两个指针p,q, 分别指向i+1, end(),对于基 ...
分类:
其他好文 时间:
2017-08-04 18:24:13
阅读次数:
138
1、2Sum 题目: 方法一:两次迭代 public class TwoSum { public static int[] twoSum(int[] nums, int target) { int[] indices = {-1,-1}; for(int i=0; i<nums.length-1; ...
分类:
其他好文 时间:
2017-04-17 23:08:22
阅读次数:
323
又是一天的爆零!!!!! 原本第一题 很容易做 竟然优化过度 丢了答案 先贴上一题 1693: ksum Submit Status Description Peter喜欢玩数组。NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组。 Peter求出了这个数组的所有子段和,并将这n(n+ ...
分类:
其他好文 时间:
2016-10-05 22:23:27
阅读次数:
340
【题目】:点击打开链接
Given an array S of n integers, are there elements a, b, c in S such that a + b + c =
0? Find all unique triplets in the array which gives the sum of zero.
Note: The solution set...
分类:
其他好文 时间:
2016-07-19 11:11:07
阅读次数:
274
一、2Sum思路1:首先对数组排序。不过由于最后返回两个数字的索引,所以需要事先对数据进行备份。然后采用2个指针l和r,分别从左端和右端向中间运动:当l和r位置的两个数字之和小于目标数字target时,r减1;当l和r位置的两个数字之和大于目标数字target时,l加1。因此只需扫描一遍数组就可以检...
分类:
编程语言 时间:
2016-01-18 12:19:24
阅读次数:
240
1).2sum1.题意:找出数组中和为target的所有数对2.思路:排序数组,然后用两个指针i、j,一前一后,计算两个指针所指内容的和与target的关系,如果小于target,i右移,如果大于,j左移,否则为其中一个解3.时间复杂度:O(nlgn)+O(n)4.空间:O(1)5.代码: v...
分类:
其他好文 时间:
2015-11-07 14:47:24
阅读次数:
311