java 将零移动到结束 - 将0移动到数组最后同时保证原非0的相对顺序
move zero to end
java 荷兰三色旗或者红白蓝排序问题
给定一个无序数组,里面的数字有0/1/2,将其排列成为0 .... .... 1 2 ....,只允许遍历一次
three colors flags
java 合并排序数组 - 合并两个排序的数组
假设两个递增排序的数组合并成为一个递增排序的数组,并且一个数组的长度M,B数组的长度N,同时一个数组的容量大于等于M + N,所以不要额外申请数组来实现,直接在一个数组中操作。思路是从后往前循环,把最大的数字放在最后面,这样可以直接在一个数组上操作。
merge sorted array
java 缺失的区间和总结区间
缺失的区间:0,1,5,6,7,10,16,17,18,20,21,98,99则输出[2-> 4,8-> 9,11-> 15,19,22 - > 97] <br/>总结区间:1,2,3,10,11,13,14,23则输出[4-> 9,12,15-> 22]
missing ranges
summary ranges
java 求数组中除了自己之外其他数的乘积,不用除法
double array
no extra space
java 求数组中除了自己之外其他数的乘积,不用除法
double array
no extra space
java 大于等于ķ的最短子数组长度
这里的子数组是连续子数组,数组中所有的数都是正数
shortest sub array
divide and conquer
java 最大尺寸子阵列和等于k(和为k的最长连续子数组)
这里的子数组是连续的,给定一个数组ARR和目标值K,求解数组中所有连续子数组之和等于ķ的最大长度的子数组的长度,时间复杂度是O(n)的
n2
n
java 寻找流数据中的中位数
采用大顶堆和小顶堆的方法来实现。例如已有数据为Ñ个,如果N%2 == 1则返回小顶堆的PEEK(),否则返回大顶堆和小顶堆堆顶元素之平均值。奇数位数的数存如小顶堆,偶数位的数存入大顶堆(当然也可以反过来,不过后面就要反过来)。大顶堆永远存储的是见过的最小的n / 2个个数,而小顶堆存储见过的最大的n / 2个个数。两个堆对于新加入的数据需要先加入再调整,再判断如果小顶堆的堆顶元素小于大顶堆的堆顶元素则交换两者的堆顶元素然后再调整。
min-max-heap
java LeetCode - 滑动窗口maxmum滑动窗口最大值
给定一个数组以及一个窗口值K,求每次窗口滑动过程中窗口中的最大值。
Deque
max heap