LintCode
文章平均质量分 66
gqk289
这个作者很懒,什么都没留下…
展开
-
[LintCode]Sort Colors II
http://www.lintcode.com/en/problem/sort-colors-ii/一共k种颜色,进行排序快排思想,找到fromColor到toColor的中点mid,将colors分为小于等于mid的和大于mid的两个部分,然后递归排序class Solution { public void sortColors2(int[] colo原创 2017-04-07 17:29:07 · 529 阅读 · 0 评论 -
[LintCode]Maximum Subarray Difference
http://www.lintcode.com/en/problem/maximum-subarray-difference/#求两个不重叠的子数组差值的最大值两次遍历,从左到右和从右到左。用两个数组leftMin[i], LeftMax[i]保存左侧到当前位置i的最大子数组和最小子数组的值,再从右往左遍历找到右侧当前位置的最大子数组和最小子数组的值。public cl原创 2017-04-03 12:17:13 · 369 阅读 · 0 评论 -
[LintCode]Minimum Adjustment Cost
http://www.lintcode.com/en/problem/minimum-adjustment-cost/#最小的cost使得相邻两个数的差值绝对值小于等于target,每一个数在[0, 100]之间背包问题,dp[i][j]保存长度为i的时候如果最后一位为j的时候的最小costk = [lower, upper] dp[i][j] =原创 2017-04-03 21:12:58 · 406 阅读 · 0 评论 -
[LintCode]Find the Missing Number II
http://www.lintcode.com/en/problem/find-the-missing-number-ii/#1 ~ n组成的字符串里面找到缺失的那个数dfs + 全局变量(res & found) + cachepublic class Solution { /** * @param n an integer *原创 2017-03-27 09:46:23 · 1372 阅读 · 0 评论 -
[LintCode]First Bad Version
http://www.lintcode.com/en/problem/first-bad-version/从某个版本之后都是错误版本,找出第一个错误版本版本号可能为Integer.MAX_VALUE,会越界!用模板class Solution { /** * @param n: An integers. * @return原创 2017-03-27 10:59:09 · 336 阅读 · 0 评论 -
[LintCode]Maximum Subarray III
http://www.lintcode.com/en/problem/maximum-subarray-iii/#找出k个不重叠的子数组,且和最大不太明显的DP,dp[i][j]为分成i个子数组,原数组长度为j。外层i遍历k,内层遍历从i ~ len。内层的local为当前分割之后的最后一个子数组的结尾位置为nums[j - 1]。当i == j的时候注意一下原创 2017-04-12 19:30:45 · 456 阅读 · 0 评论 -
[LintCode]Number of Airplanes in the Sky
http://www.lintcode.com/en/problem/number-of-airplanes-in-the-sky/#给出起降时间,判断最多有多少飞机同时在天上解法一:HashMap,内外循环,内层循环当前飞机的start ~ end,将当前时刻的飞机数+1/** * Definition of Interval: * public cl原创 2017-04-04 12:19:49 · 351 阅读 · 0 评论 -
[LintCode]Dices Sum
http://www.lintcode.com/en/problem/dices-sum/骰子投掷n次,求所有情况的和出现的概率二维数组dp[i][j]保存投掷i次得到和为j的概率,当前位置的概率为当前投掷1 ~ 6的情况下的前序概率和public class Solution { /** * @param n an i原创 2017-04-17 20:56:15 · 783 阅读 · 0 评论 -
[LintCode]Paint House II
http://www.lintcode.com/en/problem/paint-house-ii/#刷房子,每个房子刷每种颜色有一个cost[i][j],相邻两个房子不能刷同一种颜色,求最小cost要求时间复杂度O(NK)每次不需要前一状态的所有值,只需要保存前一状态之中最小和第二小的所涂的颜色。内层循环初始值设置为-1public class Solutio原创 2017-04-13 22:45:27 · 302 阅读 · 0 评论 -
[LintCode]Reorder array to construct the minimum number
http://www.lintcode.com/en/problem/reorder-array-to-construct-the-minimum-number/#给一个数组,按照最终拼成的最小数字排序ExampleGiven [3, 32, 321], there are 6 possible numbers can be constructed by原创 2017-04-05 22:40:17 · 560 阅读 · 0 评论 -
[LintCode]Wood Cut
http://www.lintcode.com/en/problem/wood-cut/给定一组树木,要求切割任意次之后相同长度的树木个数大于等于k,求最长切割后的长度。如果没有满足条件的情况就返回-1.二分最长树木,模板牛逼!考虑溢出public class Solution { /** *@param L: Given n piece原创 2017-04-16 20:06:59 · 371 阅读 · 0 评论 -
[LintCode]Maximum Average Subarray
http://www.lintcode.com/en/problem/maximum-average-subarray/#找出长度大于等于k的平均值最大的子数组求值问题很多可以用二分,初始beg & end是数组的最小和最大值。二分另一点在于valid函数。本题中为给定一个mid,判断是否存在长度大于等于k且平均值大于等于mid的子数组。sum[i]保存nu原创 2017-04-02 15:56:26 · 1743 阅读 · 0 评论 -
[LintCode]Construct Binary Tree from Inorder and Postorder Traversal
http://www.lintcode.com/en/problem/construct-binary-tree-from-inorder-and-postorder-traversal/中序和后序遍历生成二叉树套路题,要熟练!!边界情况先写 + 不能用二分(因为不是有序序列)public class Solution { public Tree原创 2017-03-25 22:53:32 · 234 阅读 · 0 评论 -
[LintCode]Combination Sum
http://www.lintcode.com/en/problem/combination-sum/#求所有combination,和为target,combination为非降序public class Solution { /** * @param candidates: A list of integers原创 2017-03-25 22:01:27 · 244 阅读 · 0 评论 -
[LintCode]Subarray Sum Closest
http://www.lintcode.com/en/problem/subarray-sum-closest/找到和最接近0的子数组前缀和,并且记录坐标,然后对于前缀和排序,找出相邻两个之差值最接近0的,差值肯定是正数,但是index前后位置关系不定,所以子数组的和可正可负public class Solution { /** * @param nu原创 2017-04-08 21:19:22 · 383 阅读 · 0 评论 -
[LintCode]Submatrix Sum
http://www.lintcode.com/en/problem/submatrix-sum/#求子矩阵,和为0,要求时间复杂度O(n3)这道题和求数组中哪些元素和为0的解决方法一样,只是数组中求的是前i个元素和前j个元素和相等,则i-j元素和为0,而这里只是变成2维的而已。sum[i][j]表示matrix[0][0]到matrix[i-1][j-原创 2017-04-09 14:22:52 · 389 阅读 · 0 评论 -
[LintCode]Swap Two Nodes in Linked List
http://www.lintcode.com/en/problem/swap-two-nodes-in-linked-list/#调换两个指定值的节点,不存在则不换,每个节点值唯一保证n1一定在n2之前,然后分两种情况调换:1、n1和n2相邻;2、不相邻public class Solution { /** * @param head原创 2017-04-09 17:11:49 · 260 阅读 · 0 评论 -
[LintCode]k Sum II
http://www.lintcode.com/en/problem/k-sum-ii/找出所有和为target且长度为k的子数组dfs,当前位置可以选也可以不选public class Solution { /** * @param A: an integer array. * @param k: a positive in原创 2017-04-09 22:17:33 · 255 阅读 · 0 评论 -
[LintCode]Wiggle Sort
http://www.lintcode.com/en/problem/wiggle-sort/Given an unsorted array nums, reorder it in-place such thatnums[0] = nums[2] 从前往后遍历,将当前与前一位置比较不满足的交换即可。因为前一位置满足条件,所以当前位置交换过去之后肯定满足条件(原创 2017-04-09 22:28:07 · 256 阅读 · 0 评论 -
[LintCode]Print Numbers by Recursion
http://www.lintcode.com/en/problem/print-numbers-by-recursion/递归打印1 ~ n,n可能很大,要防止栈溢出public class Solution { /** * @param n: An integer. * return : An array st原创 2017-04-10 09:59:59 · 264 阅读 · 0 评论 -
[LintCode]Majority Number III
http://www.lintcode.com/en/problem/majority-number-iii/#数组中有且仅有一个出现次数大于 1/k,找出来遇到k个就抵消一个public class Solution { public int majorityNumber(ArrayList nums, int k) {原创 2017-03-31 18:55:12 · 298 阅读 · 0 评论 -
[LintCode]Binary Representation
http://www.lintcode.com/en/problem/binary-representation/讲一个可能含有小数的十进制String,转成二进制,如果不能转返回ERROR小数转换就是不断*2,如果乘后大于等于1,则当前位置为1,并且将值减一;否则当前位置为0public class Solution { /**原创 2017-04-11 10:18:12 · 284 阅读 · 0 评论 -
[LintCode]Copy Books
http://www.lintcode.com/en/problem/copy-books/有n本书,每本pages[i]页,一个工人一分钟复制一页,一共k个工人,每个工人分到的书号必须连续,求怎样分最后一个工人结束时间最早解析:这个其实就是抽象成问题,一个数组分为k个子数组,保证最大子数组和最小解法一:二分查找,解一定位于[max, sum]之间。原创 2017-04-11 13:51:56 · 960 阅读 · 0 评论 -
[LintCode]Convert Expression to Reverse Polish Notation
http://www.lintcode.com/en/problem/convert-expression-to-reverse-polish-notation/中缀表达式转成后缀表达式For the expression [3 - 4 + 5] (which denote by ["3", "-", "4", "+", "5"]), return [3 4 - 5 +] (whi原创 2017-04-11 15:02:56 · 347 阅读 · 0 评论 -
[LintCode]k Sum
http://www.lintcode.com/en/problem/k-sum/求k个数和为target的总解数cache里面需要包三层!比较复杂!想清楚当前解需要多少状态决定!k & target & index都需要!!!当前位置两种选择,取或者不取public class Solution { /** * @param A: an原创 2017-04-16 21:38:14 · 258 阅读 · 0 评论