05 2020 档案
摘要:搞一个结果数组 ,用来存结果,先排序 ,对原数组扫一遍 ,如果原数组中当前元素的左区间值 要比结果数组中的最后一位的右区间 大的话,就将该元素插入进结果数组,此时这种情况是不存在交集。 如果不满足上面的条件,存在交集,进行更新结果数组中最后一位的右区间就可以了。
阅读全文
摘要:先分别排序,搞两个指针,从头开始对两个数组进行扫描,如果一个小一个大,就让小的往后走。如果相等那就存到结果数组中,然后两个指针同时往后走,循环到有一个遍历完就可以结束。
阅读全文
摘要:搞一个标记数组,模拟扫一遍。 这么写很麻烦,后续还会有优化。 未完待续...
阅读全文
摘要:找最大的周长,也就是$a+b+c$最大,如果三个数要想构成三角形的话,需要$a+b c$。固定$c$端点,使得$a+b$尽可能的大,所以排序扫一遍就ok了。 代码如下:
阅读全文
摘要:求解逆序对问题,首先基础方法就是归并排序,高阶方法可以用树状数组。 首先知道什么叫逆序对:对于一个序列$a$,如果$ia[j]$,则$a[i]$和$a[j]$构成逆序对。归并排序在 合并 的时候可以将求解逆序对作为子问题来求解,如果$a[p1]a[p2]$,那$p1 mid$的所有的值都比$a[p2
阅读全文
摘要:因为出现的都是小写字母,所以最多就有26个,用一个存储26个元素的数组来进行计数,正着扫,反着扫,循环,直到数组的所有位全为0,即可解决问题。 代码如下:
阅读全文

浙公网安备 33010602011771号