自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 【两次过】【Comparator】Lintcode 613. 优秀成绩

每个学生有两个属性id和scores。找到每个学生最高的5个分数的平均值。样例例1:输入: [[1,91],[1,92],[2,93],[2,99],[2,98],[2,97],[1,60],[1,58],[2,100],[1,61]]输出:1: 72.402: 97.40例2:输入:[[1,90],[1,90],[1,90],[1,90],[1,90]...

2019-04-30 10:52:40 187

原创 【一次过】Lintcode 610. 两数和 - 差等于目标值

给定一个整数数组,找到两个数的差等于目标值。index1必须小于index2。注意返回的index1和index2不是 0-based。样例例1:输入: nums = [2, 7, 15, 24], target = 5 输出: [1, 2] 解释:(7 - 2 = 5)例2:输入: nums = [1, 1], target = 0输出: [1, 2] 解...

2019-04-29 10:14:45 756

原创 【两次过】【双指针】Lintcode 587. 两数之和 - 不同组成

给一整数数组, 找到数组中有多少组不同的元素对有相同的和, 且和为给出的 target 值, 返回对数.样例Example 1:Input: nums = [1,1,2,45,46,46], target = 47 Output: 2Explanation:1 + 46 = 472 + 45 = 47Example 2:Input: nums = [1,1...

2019-04-28 10:31:23 371

原创 【两次过】【双指针】Lintcode 533. 两数和的最接近值

给定整数数组num,从中找到两个数字使得他们和最接近target,返回两数和与target的差的绝对值。样例样例1输入: nums = [-1, 2, 1, -4] 并且 target = 4输出: 1解释:最小的差距是1,(4 - (2 + 1) = 1).样例2输入: nums = [-1, -1, -1, -4] 并且 target = 4输出: 6解...

2019-04-28 10:14:12 189

原创 【两次过】【归并】Lintcode 486. 合并k个排序数组

将k个有序数组合并为一个大的有序数组。样例样例 1:输入: [ [1, 3, 5, 7], [2, 4, 6], [0, 8, 9, 10, 11] ]输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]样例 2:输入: [ [1,2,3], [1,2] ]输出: [1,1,...

2019-04-28 09:58:21 2847 1

原创 【两次过】Lintcode 475. 二叉树的最大路径和 II

给一棵二叉树,找出从根节点出发的路径中,和最大的一条。这条路径可以在任何二叉树中的节点结束,但是必须包含至少一个点(也就是根了)。样例Example 1:Input: {1,2,3}Output: 4Explanation: 1 / \ 2 3Example 2:Input: {1,-1,-1}Output: 1Explanation:...

2019-04-27 09:44:29 257

原创 【一次过】Lintcode 461. 无序数组K小元素

找到一个无序数组中第K小的数样例样例 1:输入: [3, 4, 1, 2, 5], k = 3输出: 3样例 2:输入: [1, 1, 1], k = 2输出: 1挑战O(nlogn)的算法固然可行, 但如果你能 O(n) 解决, 那就非常棒了.解题思路1:快排的partition过程可定位到元素的位置,通过类似二分查找的定位方式找到第k小的数。...

2019-04-27 09:17:29 376

原创 【两次过】【二分查找】Lintcode 447. 在大数组中查找

给一个按照升序排序的非负整数数组。这个数组很大以至于你只能通过固定的接口ArrayReader.get(k)来访问第k个数(或者C++里是ArrayReader->get(k)),并且你也没有办法得知这个数组有多大。找到给出的整数target第一次出现的位置。你的算法需要在O(logk)的时间复杂度内完成,k为target第一次出现的位置的下标。如果找不到target,返回-1。...

2019-04-26 10:15:37 898

原创 【两次过】Lintcode 56. 两数之和

给一个整数数组,找到两个数使得他们的和等于一个给定的数target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到n-1。样例Example1:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].Example2:给出 numbers = [15, 2, 7,...

2019-04-26 09:42:09 317

原创 【一次过】【双指针】Lintcode 443. 两数之和 II

给一组整数,问能找出多少对整数,他们的和大于一个给定的目标值。样例样例 1:输入: [2, 7, 11, 15], target = 24输出: 1解释: 11 + 15 是唯一的一对样例 2:输入: [1, 1, 1, 1], target = 1输出: 6挑战O(1) 额外空间以及 O(nlogn) 时间复杂度解题思路:双指针。先排序,一...

2019-04-26 09:11:43 103

原创 【两次过】二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路:BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。完美的递归...

2019-04-25 10:44:42 86

原创 【三次过】Lintcode 402. 连续子数组求和

给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果存在多个答案,请返回字典序最小的)样例样例 1:输入: [-3, 1, 3, -3, 4]输出: [1, 4]样例 2:输入: [0, 1, 0, 1]输出: [0, 3]解释: 字典序最小.解题思路:我们用sum来记录当前位置的累计和,...

2019-04-25 09:01:42 164

原创 【两次过】【双指针】Lintcode 382. 三角形计数

给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?样例Example 1:Input: [3, 4, 6, 7]Output: 3Explanation:They are (3, 4, 6), (3, 6, 7), (4, 6, 7)Example 2:Input...

2019-04-24 09:56:05 186

原创 【两次过】Lintcode 378. 将二叉查找树转换成双链表

将一个二叉查找树按照中序遍历转换成双向链表。样例样例 1:输入: 4 / \ 2 5 / \ 1 3 输出: 1<->2<->3<->4<->5样例 2:输入: 3 / \ 4 1输出:4<->3<->1解题思路1:分...

2019-04-23 11:20:22 263

原创 【两次过】【完全背包】Lintcode 801. 背包问题X

你总共有n元,商人总共有三种商品,它们的价格分别是150元,250元,350元,三种商品的数量可以认为是无限多的,购买完商品以后需要将剩下的钱给商人作为小费,求最少需要给商人多少小费样例Example 1: Input: n = 900 Output: 0Example 2: Input: 800 Output: 50解题思路:完全背包问题,解决方法与01背包的...

2019-04-23 10:30:08 223

原创 【一次过】【完全背包】Lintcode 562. 背包问题 IV

给出 n 个物品, 以及一个数组,nums[i]代表第i个物品的大小, 保证大小均为正数并且没有重复, 正整数target表示背包的大小, 找到能填满背包的方案数。每一个物品可以使用无数次样例样例1输入: nums = [2,3,6,7] 和 target = 7输出: 2解释:方案有: [7][2, 2, 3]样例2输入: nums = [2,3,4,5...

2019-04-23 10:26:18 477

原创 【两次过】Lintcode 229. 栈排序

请设计一种方法将一个栈进行升序排列 (最大的数在最上面)。你可以使用另外一个栈来辅助操作,但不可将这些数复制到另外一个数据结构中 (如,数组)。样例给一个栈:| ||3||1||2||4| -排序之后:| ||4||3||2||1| -栈会被序列化为[4,2,1,3],也就是说最右边是栈顶。注意事项时间复杂度为O(n^2)的算法也可以...

2019-04-22 21:14:24 204

原创 【两次过】【背包】Lintcode 563. 背包问题 V

给出 n 个物品, 以及一个数组,nums[i]代表第i个物品的大小, 保证大小均为正数, 正整数target表示背包的大小, 找到能填满背包的方案数。每一个物品只能使用一次样例给出候选物品集合[1,2,3,3,7]以及 target7结果的集合为:[7][1,3,3]返回2解题思路:与Lintcode 588. 划分和相等的子集类似,只不过从是否能...

2019-04-22 09:48:32 497

原创 【一次过】【背包】Lintcode 125. 背包问题 II

给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?样例对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。挑战O(n x m) memory is acceptable, can you do it in O(m) memory?注意事项A[i], V[...

2019-04-22 09:00:13 148

原创 【两次过】【2017网易】【背包】双核处理

链接:https://www.nowcoder.com/questionTerminal/9ba85699e2824bc29166c92561da77fa来源:牛客网一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让...

2019-04-21 20:15:13 127

原创 【三次过】【序列型】Lintcode 667. 最长的回文序列

给一字符串 s, 找出在 s 中的最长回文序列的长度. 你可以假设 s 的最大长度为1000.样例Example1Input: "bbbab"Output: 4Explanation:One possible longest palindromic subsequence is "bbbb".Example2Input: "bbbbb"Output: 5解题...

2019-04-21 11:04:57 457

原创 【两次过】栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路1:观察到这样一个规律,先在入栈序列中找到出栈序列的第一个元素,找不到...

2019-04-21 09:41:28 173

原创 【三次过】Lintcode 139. 最接近零的子数组和

给定一个整数数组,找到一个和最接近于零的子数组。返回第一个和最右一个指数。你的代码应该返回满足要求的子数组的起始位置和结束位置样例给出[-3, 1, 1, -3, 5],返回[0, 2],[1, 3],[1, 1],[2, 2]或者[0, 4]。挑战O(nlogn)的时间复杂度解题思路:这道题求的是和最接近于0的子序列,暴力做法应该是N*N的时间复杂度,但是不能AC...

2019-04-20 10:44:57 290

原创 【一次过】Lintcode 394. 硬币排成线

有n个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定先手玩家必胜还是必败?若必胜, 返回true, 否则返回false.样例样例 1:输入: 1输出: true样例 2:输入: 4输出: true解释: 先手玩家第一轮拿走一个硬币, 此时还剩三个.这时无论后手玩家拿一个还是...

2019-04-19 10:39:39 255

原创 【三次过】Lintcode 118. 不同的子序列

给出字符串S和字符串T,计算S的不同的子序列中T出现的个数。子序列字符串是原始字符串通过删除一些(或零个)产生的一个新的字符串,并且对剩下的字符的相对位置没有影响。(比如,“ACE”是“ABCDE”的子序列字符串,而“AEC”不是)。样例给出S ="rabbbit", T ="rabbit"返回 3挑战Do it in O(n2) time and O(n) memo...

2019-04-18 10:42:24 279

原创 【两次过】Lintcode 109. 数字三角形

给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。样例example 1Given the following triangle:[ [2], [3,4], [6,5,7], [4,1,8,3]]The minimum path sum from top to bottom is 11 (i.e., 2 + ...

2019-04-18 09:54:51 184

原创 【多次过】【2017美团】【背包】拼凑硬币

给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。解题思路:import java.util.Scanner;import java.util.Arrays;public class Main{ public static long count(int n){ ...

2019-04-17 21:54:31 337

原创 【一次过】【2017美团】最大矩形面积

链接:https://www.nowcoder.com/questionTerminal/b0fbb688d01a4f2c8c17e5efd85d5824来源:牛客网给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。输入描述:输入包括...

2019-04-17 21:10:04 237

原创 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不能使用库函数!解题思路1:正常的循环乘。需要注意解决0和负数的问题。时间复杂度O(n)public class Solution { public double Power(double base, int exponent) { if(...

2019-04-17 10:04:08 125

原创 【两次过】数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路1:先排序然后取中间那位数,时间复杂度为O(nlogn),显然不是很好。第二个容易想到的是利用HashMap存储数与它出现的次数,时间复杂度为O(n),但空间...

2019-04-16 10:14:21 118

原创 【一次过】【PriorityQueue】【2017好未来】n个数里最小的k个

找出n个数里最小的k个输入描述:每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n不超过100。输出描述:输出n个整数里最小的k个数。升序输出示例1输入3 9 6 8 -10 7 -11 19 30 12 23 5输出-11 -10 3 6 7解题思路:使用Priority即可。为了保证更高的拓展性,本题采用固定大小的最大堆堆进...

2019-04-15 22:01:44 129

原创 【两次过】Lintcode 374. 螺旋矩阵

给定一个包含mxn个要素的矩阵,(m行,n列),按照螺旋顺序,返回该矩阵中的所有要素。样例样例 1:输入:[[ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]样例 2输入:[[ 6,4,1 ], [ 7,8,9 ]]输出: [6,4,1,9,8,7]解题思路:把矩阵看成若干个...

2019-04-15 11:01:19 178

原创 【两次过】矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路:设dp[i]为用i个2*1的小矩形无重叠地覆盖一个2*i的大矩形,总共有dp[i]种方法.考虑两种情况:当小矩形竖着时,则有dp[i-1]种方法当小矩形横着放时,则下面一格也只能横着放一个,一共占据2格,则有dp[i-2]种方法综...

2019-04-15 10:05:00 130

原创 【两次过】树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路:先判断以root1根节点当前节点是否与以root2为根节点为子树,若不是则继续判断root1的左子树与root2和root1的右子树与root2。/**public class TreeNode { int val = 0; TreeNode left =...

2019-04-14 15:13:47 72

原创 【一次过】合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:归并中的merge操作。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/...

2019-04-14 11:08:26 111

原创 【三次过】Lintcode 108. 分割回文串 II

给定一个字符串s,将s分割成一些子串,使每个子串都是回文。返回s符合要求的的最少分割次数。样例比如,给出字符串s ="aab",返回 1, 因为进行一次分割可以将字符串s分割成["aa","b"]这样两个回文子串解题思路:动态规划。状态定义:dp[i]表示以下标i结尾的字符串,最少分割dp[i]次,使得子串都是回文串初始化:如果s[0...i]区间就是回文...

2019-04-13 10:23:42 194

原创 【一次过】【2017好未来】求和

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来输入描述:每个测试输入包含2个整数,n和m输出描述:按每个组合的字典序排列输出,每行输出一种组合示例1输入5 5输出1 42 35解题思路:标准dfs解法。import java.util.*;public c...

2019-04-12 20:13:21 105

原创 【三次过】Lintcode 421. 简化路径

给定一个文件的绝对路径(Unix-style),请进行路径简化。Unix中,.表示当前目录,..表示父目录。结果必须以/开头,并且两个目录名之间有且只有一个/。最后一个目录名(如果存在)后不能出现/。你需要保证结果是正确表示路径的最短的字符串。样例样例 1:输入: "/home/"输出: "/home"样例 2:输入: "/a/./../../...

2019-04-11 22:05:00 176

原创 【三次过】Lintcode 575. 字符串解码

给出一个表达式s,此表达式包括数字,字母以及方括号。在方括号前的数字表示方括号内容的重复次数(括号内的内容可以是字符串或另一个表达式),请将这个表达式展开成一个字符串。样例样例1输入: S = abc3[a]输出: "abcaaa"样例2输入: S = 3[2[ad]3[pf]]xyz输出: "adadpfpfpfadadpfpfpfadadpfpfpfxyz"...

2019-04-11 09:57:08 288

原创 【一次过】【2017网易】买苹果

小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描述:输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述:输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1输入例子1:...

2019-04-10 09:47:19 121

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除