yujinding

导航

2017年6月20日 #

最大平均值子数组

摘要: LintCode 给出一个整数数组,有正有负。找到这样一个子数组,他的长度大于等于 k,且平均值最大。 二分平均值,平均值的上限r是单个最大值,下限l是所有数的和. mid=(l+r)/2 设sum[i]=nums[0]+nums[1]+nums[2]...nums[i]-i*mid; 保存m=mi 阅读全文

posted @ 2017-06-20 16:06 yujinding 阅读(549) 评论(0) 推荐(0)

2017年6月19日 #

寻找旋转排序数组中的最小值 寻找旋转排序数组中的最小值 II

摘要: 寻找旋转排序数组中的最小值: 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。 思路:若nums[mid]>nums[r],则最小值一定在[mid+1,r]区间内.否则最 阅读全文

posted @ 2017-06-19 22:10 yujinding 阅读(184) 评论(0) 推荐(0)

2017年6月16日 #

带环链表 II

摘要: 单链表,问有没有环,若有,找到环的入口. Lintcode上挑战,只许使用常数的空间. 设一个快指针fast,一个慢指针slow,fast每次走2步,slow每次走1步. 若无相遇找到了链尾,则无环,若相遇了,则有环. 设从链头到环入口点走了a步,从环入口到相遇点走了x步,环长r.相遇时,slow走 阅读全文

posted @ 2017-06-16 15:24 yujinding 阅读(417) 评论(0) 推荐(0)

2017年6月13日 #

Floyd最短路算法的解释.

摘要: 适用于有向/无向图,本质上是一个动态规划. D[k][i][j]代表经前k个结点中转,i到j的距离.可以写出方程: D[k][i][j]=min{D[k-1][i][j], D[k-1][i][k]+D[k-1][k][j]}. 比如一个路径5->1->4->2->3. k=1时,算出了5->4的最 阅读全文

posted @ 2017-06-13 14:52 yujinding 阅读(108) 评论(0) 推荐(0)