05 2020 档案

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