Algorithmic problem
The lifeblood of a programmer
For_LD
For_LD
展开
-
SortArrayDistanceLessK
[Question] 已知一个几乎有序的数组,几乎有序是指如果把数组排好序的话,每个元素移动的距离可以不超过K,并且K相对于数组来说比较小。 [Idea] 使用优先级队列结构 PriorityQueue length=K+1 首先将数组前"K+1"个数add进 PriorityQueue 其次循环 add 数组下一个数 并 poll up 数组第一个数 [Source code] import java.util.PriorityQueue; public class code04_SortArray原创 2021-09-26 16:13:42 · 235 阅读 · 0 评论 -
SmallSum
[Question] 在一个数组中,将每一个比当前数小的左边的数累加起来称作这个数组的小和(small Sum)。求该数组的小和。 [Example] int[] array = new int[] {1, 3, 4, 2, 5}; smallSum = 1 + (1 + 3) + 1 + (1 + 3 + 4 + 2) //==> smallSum = 16 [Idea] 将小和问题转换为右边有多少个数比它大(基于MergeSort) [Source code] public class cod原创 2021-09-24 16:15:02 · 192 阅读 · 0 评论 -
EvenTimesOddTimes
[Question] 在一个整型数组中,要求算法时间复杂度O(N),空间复杂度O(1) (一)只有一个数出现奇数次,其余出现偶数次。要求:找到这个奇数次的数 (二)有两个不相等的数出现奇数次,其余出现偶数次。要求:找到这两个奇数次的数 [Source code] public class code01_EvenTimesOddTimes { public static void main(String[] args) { int[] array = new int[]{1, 1,原创 2021-09-18 18:21:27 · 172 阅读 · 0 评论