题目:有两个有序数组a,b,现需要将其合并成一个新的有序数组
简单的思路就是先放到一个新的数组中,再排序但是这样的没体现任何算法,这里考的不是快速排序等排序算法关键应该是如何利用 有序 已知这个条件。可以这样想假设两个源数组的长度不一样,那么假设其中短的数组用完了即全部放叺到新数组中去了,那么长数组中剩下的那一段就可以直接拿来放入到新数组中去了
测试结果如下图:1,是去重复的;2是不去重复的。
题目:有两个有序数组a,b,现需要将其合并成一个新的有序数组
简单的思路就是先放到一个新的数组中,再排序但是这样的没体现任何算法,这里考的不是快速排序等排序算法关键应该是如何利用 有序 已知这个条件。可以这样想假设两个源数组的长度不一样,那么假设其中短的数组用完了即全部放叺到新数组中去了,那么长数组中剩下的那一段就可以直接拿来放入到新数组中去了
格式:DOC ? 页数:23页 ? 上传日期: 01:27:51 ? 浏览次数:1000? ? ? 2000积分 ? ? 用稻壳阅读器打开
全文阅读已结束如果下载本文需要使用
这题用暴力方法非常简单的
这个方法非常巧妙我们使用一个set来存储和余k后的余数。set[i]表示第i处之前的和余k后的余数于是如果在i之后有和余k之后等于这个set[i],那么就说明有連续子数组的和可以整除k因为这说明中间差值是可以被k整除的。
这里cache的使用非常巧妙因为题目限制子数组长度必须大于等于2,所以先將值存入cache然后下个循环再进行判断,满足每次判断时子数组长度都是大于2的。