
刷题心得
文章平均质量分 61
ziyue225
这个作者很懒,什么都没留下…
展开
-
面试题之硬币排成线java极简解法
问题描述:有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?该题为一道典型的动态规划题,但此处将描述一种递归的极简的算法。题目中给出的测试用例如下:n = 1, 返回 true.n = 2, 返回 true.n = 3, 返回 false.原创 2016-03-03 11:39:20 · 648 阅读 · 0 评论 -
LintCode 最大数
问题描述:给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。显然这是一道排序的题目, 易知应该把首位大的数字排在前,首位小的数字排在后。但当数据集为[ 2, 20, 21,24](一个例子)时,仅通过判断最高位不能完成排序,所以选用另一种方法。参考冒泡排序,两两比较并交换。比如1和2原创 2016-03-04 09:32:48 · 1472 阅读 · 0 评论 -
LintCode 数组划分
问题描述:给出一个整数数nums和一个整数k。划分数组(即移动数组nums中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置i,满足nums[i]大于等于k。样例:给出数组nums = [3, 2, 2, 1]和 k=2,返回 1。挑战:要求在原地使用O(n)的时间原创 2016-03-04 16:48:07 · 1082 阅读 · 0 评论 -
LintCode 直方图最大矩形覆盖
问题描述:给出的n个非负整数表示每个直方图的高度,每个直方图的宽均为1,在直方图中找到最大的矩形面积。以上直方图宽为1,高度为[2,1,5,6,2,3]。最大矩形面积如图阴影部分所示,含有10单位。 分享本题的一种”暴力“解法。矩形的最大面积由宽度和该宽度范围内最低的高度决定。因此进行两次遍历,第一次遍历数组中的每一个元素;第二次以该元素为中心向左右两个方向遍原创 2016-03-04 17:33:36 · 2111 阅读 · 0 评论 -
LintCode Wiggle Sort II
问题描述:Given an unsorted array nums, reorder it such thatnums[0] nums[2] Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6].Given nums = [1, 3, 2, 2, 3, 1],原创 2016-03-04 17:49:54 · 392 阅读 · 0 评论 -
LintCode 最小调整代价
问题描述:给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。你可以假设数组中每个整数都是正整数,且小于等于100。样例对于数组[1, 4, 2, 3]和target=1,最小的调整方案是调整为[2, 3, 2, 3],调整代价之和是2。返回2。本问题与背包问题的求解方法类似原创 2016-03-30 00:13:43 · 2074 阅读 · 0 评论 -
LintCode 木材加工
问题描述:有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目至少为 k。当然,我们希望得到的小段越长越好,你需要计算能够得到的小段木头的最大长度。样例:有3根木头[232, 124, 456], k=7, 最大长度为114.本题要找到小段木头的最大长度,首先想到了从某个可能值递减,直到数组中每一个数除某一长度的商之和等于k,该长度为小段木头的最大原创 2016-03-05 21:34:20 · 2082 阅读 · 0 评论