![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
想法
文章平均质量分 78
记忆星空
这个作者很懒,什么都没留下…
展开
-
pat1067
这题我用了差不多是离散数学里的置换群(其实我也不记得是不是叫置换群,反正这个群里的一些数位置错了,可以通过某个数发起,把这些数换到自己对应的位置)的思想,假如我们找到一个置换群,这个置换群包括0,那么置换群里有多少个数(包括0)我们就换多少次就好了,假如没有0,那么我们先要把0加入到这个置换群(就是置换群中的某个数和0换一个位置)继续刚才的做法。至于做法总数的话,我现在假设0就在0这个位置,那么每原创 2013-10-25 19:28:22 · 888 阅读 · 0 评论 -
九度1536
这题的话其实是为了说明一个算是比较重要的结论把,假如我要找一棵树中距离最远的两个点,我可以这么找,首先任取一点bfs找到离这点最远的那个点,然后从被找到的这个点出发,再一遍bfs找到离刚找的这点最远的点,那么这两点的距离一定是树中距离最大的,但显然不唯一。这 题让你求树的最小高度,假如我们求出了树中最大的距离L,那么如果我们要在最长路径中选择一个点作为根,显然这个根就是选在中点,最小高度是(L+1原创 2013-10-25 20:14:57 · 660 阅读 · 0 评论 -
pat1044
个人觉得这题非常的不错,对这类优化问题,个人非常的喜欢,大公司的面试题,很多也是这类优化问题,一般的方法大家都能想到,而好的方法却只有一部分人能想到。这题其实就是让你在一串数中求连续的一段数,这段数的和减去给定值要尽量小(小到0最好),其实对这题最为有用的一个性质是这样的,假如我找到了一个Ai,A(i+1)......Aj 满足了要求,那么我下一次从i+1开始找的时候,我的j是不需要从i+2开原创 2013-10-11 20:49:00 · 1025 阅读 · 0 评论 -
九度1502
九度1502这题我觉得我还是比较奇葩的,看到这种最值这种想到的就是动态规划,弄出了dp方程居然过了2组数据,后来发现,这题貌似没有最优子结构性质。后来看到别人是二分做的,二分的是答案,好吧,总觉得二分答案的想法很奇特,是不是没啥想法了就试试二分答案呢,然后宁波理工蔡老师地方拿来final队员的二分写法,果然比市面上流传的2种更好理解点。受教了。说了一大堆,本题的思路就是,二分一个答案,看看是否原创 2013-11-03 18:04:06 · 884 阅读 · 0 评论 -
九度1530
最近迷上了这类优化问题,但是这题不是我想出来的,但是我后来想了下,这样的做法确实是对的。从一个字符串中找到一个连续子串,该子串中任何两个字符都不能相同,且该子串的长度是最大的。这个方法是这样的:设一个head和一个tail,然后用一个数组记录每个字符在head和tail之间出现的次数,在head不变的情况下,tail往后移,当tail没有发现head到tail之间出现的字符时,他接着往后,当发原创 2013-10-12 22:03:53 · 612 阅读 · 0 评论 -
LeetCode 3Sum&&3Sum Closest&&4Sum
终于做了决定,开始做LeetCode,上来先做了3题都是关于sum的,这三题我认为都是从同一个问题变过来的,很多人都知道一个经典的问题就是给你一个数组a和一个数字tar,问你这个数组中有没有两个数的和等于这个给定的数字tar,显然要用O(N)的方法,这个问题的答案就是先排序,然后定义两个边界l和r,l一开始等于0,r一开始等于n-1,每次把边界指的两个数相加和给定的数tar比较一下,如果比tar小原创 2015-01-14 10:42:57 · 464 阅读 · 0 评论 -
关于几种二分的想法
一般的二分能解决在单调序列中查找某个数是否存在的作用,假如查找的某数有多个,我要你输出第一个的位置,或者最后一个的位置,其实这些问题也能用而二分解决。c++中貌似自带lower_bound 和upper_bound函数,分别是在单调有序的序列中,找到第一个大于给定值和第一个大于等于给定值的数的位置,但是这些都是怎么实现的呢?现在有一串单调非递减的序列(意味着有重复数字),那么先说明4个问题原创 2014-12-09 12:01:38 · 976 阅读 · 2 评论