自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【两次过】Lintcode 123. 单词搜索

给出一个二维的字母板和一个单词,寻找字母板网格中是否存在这个单词。单词可以由按顺序的相邻单元的字母组成,其中相邻单元指的是水平或者垂直方向相邻。每个单元中的字母最多只能使用一次。样例给出board =[ "ABCE", "SFCS", "ADEE"]word ="ABCCED", ->返回 true,word ="SEE",-> 返回 ...

2019-02-27 10:07:13 188

原创 【一次过】Lintcode 153. 数字组合 II

给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。样例给出一个例子,候选数字集合为[10,1,6,7,2,1,5]和目标数字8 ,解集为:[[1,7],[1,2,5],[2,6],[1,1,6]]注意事项所有的数字(包括目标数字)均为正整数。 元素组合(a1,a2, … ,ak)必须是非降序(ie...

2019-02-24 22:14:20 248

原创 【两次过】Lintcode 135. 数字组合

给出一个候选数字的set(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T。C中的数字可以无限制重复被选取。样例给出候选set[2,3,6,7]和目标数字7返回[[7],[2,2,3]]注意事项所有的数字(包括目标数字)均为正整数。 元素组合(a1,a2, … ,ak)必须是非降序(ie,a1≤a2≤ … ≤ak)。 解集不能包含重复的组合。...

2019-02-24 22:02:45 281

原创 【一次过】Lintcode 152. 组合

组给出两个整数n和k,返回从1......n中选出的k个数的组合。样例例如 n = 4 且 k = 2返回的解为:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]]注意事项不需要在意组合的顺序,但是你应该确保组合中的数字是有序的解题思路:标准DFS解法public class Solution { /** * @par...

2019-02-24 21:25:23 229

原创 DFS解题套路总结

一、组合问题题目要求的结果是当前排列的分割!对于长度为n的数组,我们需要依次确认每个位置上的元素。初始问题:从a[0]开始依次确认n个元素。如果我们确认a[0]之后,问题就变成从a[1]开始从剩余元素中选择一个元素确定a[1]。每次选择都有多种可能性,我们依次尝试(尝试后还原),并递归解决选择之后的产生的子问题,并定义出口。例如给出初始集合[1, 2, 3],则结果应该是[1, 2, 3...

2019-02-23 10:28:01 1497

原创 【三次过】Lintcode 426. 恢复IP地址

给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。(你的任务就是往这段字符串中添加三个点, 使它成为一个合法的IP地址. 返回所有可能的IP地址.)样例样例 1:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]解释: ["255.255.111.35", "255.255.11.135"] 同样可以....

2019-02-22 21:26:53 540 1

原创 【两次过】Lintcode 425. 电话号码的字母组合

给一个不包含'0'和'1'的数字字符串,每个数字代表一个字母,请返回其所有可能的字母组合。下图的手机按键图,就表示了每个数字可以代表的字母。1 2 ABC 3 DEF 4GHI 5JKL 6MNO 7PQRS 8TUV 9WXYZ 样例样例 1:输入: "23"输出: ["ad", "ae", "af", "bd", ...

2019-02-22 20:19:59 337

原创 【两次过】Lintcode 1080. 最大的岛

给定一个由0和1组成的非空二维数组grid,一个岛由一组四联通(上下左右四方向)的1(表示陆地)组成。假定grid的四周都是水。返回最大的岛。(没有岛则返回0)样例样例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0,1,1,...

2019-02-21 10:40:42 271

原创 【两次过】Lintcode 1479. 能否到达终点

给一个大小为m*n的map,1代表空地,0代表障碍物,9代表终点。请问如果你从(0, 0)开始能否到达终点?样例样例1输入: [ [1,1,1], [1,1,1], [1,1,9]]输出: true样例2输入: [ [1,1,1], [1,0,0], [1,0,9]]输出: false解题思路1:BFSpublic cla...

2019-02-19 18:40:02 726

原创 【三次过】Lintcode 1386. 坐缆车

小九来到某地坐缆车,他的钱只能坐一次缆车,所以他想尽量延长坐缆车的时间。已知缆车站分布可以看作是一个n x m的矩阵,每个格点代表缆车站的高度。他可以从任一站点开始坐缆车,缆车只能从矮的高度移动到高的高度,花费1单位的时间。缆车可以朝着八个方向移动。(上下左右、左上、左下、右上、右下)问小九最多能坐多久缆车?样例样例1输入: mat = [ [1,2,3], [4,...

2019-02-19 18:29:49 423

原创 【一次过】Lintcode 1398. K进制加法

给出一个k,a,b,代表a和b都是一个k进制的数,输出a + b的k进制数。样例样例1输入: k = 3, a = "12", b = "1"输出: 20解释: 12 + 1 = 20 in 3 bases.样例2输入: k = 10, a = "12", b = "1"输出: 13解释: 12 + 1 = 13 in 10 bases.注意事项2 ...

2019-02-19 14:24:11 1159

原创 【一次过】Lintcode 1368. 相同数字

给一个数组,如果数组中存在相同数字,且相同数字的距离小于给定值k,输出YES,否则输出NO。样例样例1输入: array = [1,2,3,1,5,9,3] 和 k = 4输出: "YES"解释:index为3的1和index为0的1距离为3,满足题意输出YES。样例2输入: array = [1,2,3,5,7,1,5,1,3] 和 k = 4,输出: "YES...

2019-02-19 13:31:08 132

原创 【两次过】Lintcode 970. 大生意

给出两个数组a,b。a[i]代表第i部影片的版权费,b[i]代表第i部影片能卖的钱,现在本金k,问最后最多能赚多少钱。(每部影片只需要买一次版权,只能卖一次。)样例样例 1:输入:a = [3,1,5], b = [4,3,100], k = 1输出:4解释:先买第2部影片,再卖出,再买第1部影片,再卖出,最后本金变为4。样例 2:输入:a = [3,1,5], b ...

2019-02-19 13:18:50 106

原创 【一次过】Lintcode 958. 回文数据流

一个数据流进来,每次一个字母,当前数据流的排列是否能组成回文串。样例样例 1:输入:s = ['a','a','a','a','a']输出:[1,1,1,1,1]解释:“a”的排列可以构成回文串“aa”的排列可以构成回文串“aaa”的排列可以构成回文串“aaaa”的排列可以构成回文串“aaaaa”的排列可以构成回文串样例 2:输入:s = ['a','b',...

2019-02-19 11:08:21 171

原创 【一次过】Lintcode 897. 海岛城市

给一个n x m的矩阵,矩阵的值有0、1、2,0代表海,1代表海岛,2代表海岛上的城市(你可以看做2是建立在1的上面,即2也也同时代表海岛)。如果2个1相邻,那么这两个1属于同一个岛。现在求至少有一个城市的海岛个数。样例样例1输入: [[1,1,0,0,0],[0,1,0,0,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,0,0,1]]输出: 0...

2019-02-17 22:02:53 259

原创 【一次过】Lintcode 956. 数据分割

给出一个字符串 str,你需要按顺序提取出该字符串的符号和单词。样例样例 1:输入: str = "(hi (i am)bye)"输出:["(","hi","(","i","am",")","bye",")"].解释:将符号和单词分割。样例 2:输入: str = "#ok yes&

2019-02-16 15:39:25 84

原创 【两次过】【Comparator】Lintcode 830. 字符串排序

给出一个字符串,以 字符在串中出现的次数 为第一关键字,字典序为第二关键字排序字符串。样例样例1输入: str = "bloomberg"输出: "bbooeglmr"解释:'b'和'o'出现次数最多,但是'b'字典序较小,排名第一,其次是'o',以此类推.样例2输入: str = "lintcode"输出: "cdeilnot"解释:所有字符出现次数一样多,...

2019-02-16 11:31:11 343

原创 【一次过】Lintcode 807. 回文数 II

判断一个非负整数 n 的二进制表示是否为回文数样例样例1输入: n = 0输出: True解释:0 的二进制表示为:0。样例2输入: n = 3输出: True解释:3 的二进制表示为:11。样例3输入: n = 4输出: False解释:4 的二进制表示为:100。样例4输入: n = 6输出: False解释:6 的二进...

2019-02-15 10:12:50 180

原创 【一次过】Lintcode 823. 输入流

给出两个输入流inputA和inputB(包含退格符),如果两个输入流最后的结果相等,输出YES,否则输出NO。样例样例1输入: inputA = "abcde<<" 和 inputB = "abcd<e<"输出: "YES"解释:inputA和inputB最后的结果都为"abc",故返回"YES"。样例2输入: inpu

2019-02-15 10:03:51 117

原创 【一次过】Lintcode 786. 链表的反向带权和

给定一个链表,求出这个链表的带权和。链表结点的权值指的是该结点到链表尾节点的结点数。样例样例1输入: 3 -> 2 -> 5 -> 1输出: 29解释:(3 * 4 + 2 * 3 + 5 * 2 + 1) = 29样例2输入: 1 -> 2 -> 3 -> 4输出: 20解释:(1 * 4 + 2 * 3 + 3 * 2 ...

2019-02-15 09:52:04 107

原创 【一次过】Lintcode 604. 滑动窗口内数的和

给你一个大小为n的整型数组和一个大小为k的滑动窗口,将滑动窗口从头移到尾,输出从开始到结束每一个时刻滑动窗口内的数的和。样例对于数组 [1,2,7,8,5] ,滑动窗口大小k= 3 。1 + 2 + 7 = 102 + 7 + 8 = 177 + 8 + 5 = 20返回 [10,17,20]解题思路:直接遍历即可。注意返回空数组是返回new int[0]public...

2019-02-15 09:30:05 235

原创 【两次过】Lintcode 597. 具有最大平均数的子树

给一棵二叉树,找到有最大平均值的子树。返回子树的根结点。样例给一个二叉树: 1 / \ -5 11 / \ / \1 2 4 -2 返回节点 11。注意事项LintCode会打印出根结点为你返回节点的子树,保证有最大平均数子树只有一棵解题思路:与Lintcode 596. 最小子树思路一致,只不过求平均值所需要传递...

2019-02-14 12:12:47 500 1

原创 【一次过】Lintcode 596. 最小子树

给一棵二叉树, 找到和为最小的子树, 返回其根节点。样例例1:输入: 1 / \ -5 2 / \ / \0 2 -4 -5 输出:1例2:输入: 1输出:1注意事项LintCode会打印根节点为你返回节点的子树。保证只有一棵和最小的子树并且给出的二叉树不是一棵空树。解题思路1:采用全局变量记录最...

2019-02-14 11:37:05 455

原创 【一次过】【PriorityQueue】Lintcode 543. N数组第K大元素

在N个数组中找到第K大元素样例例1:输入:n=2,[[9,3,2,4,7],[1,2,3,4,8]]输出:7解释:第三大的元素为 7。例2:输入:n=2,[[9,3,2,4,8],[1,2,3,4,2]]输出:8解释:最大的元素为 9,第二大的元素为 8,第三大的元素为 4 等等。注意事项你可以交换数组中的元素解题思路:优先队列...

2019-02-12 21:41:03 216

原创 【一次过】Lintcode 497. 形状工厂

工厂模式是一种常见的设计模式。实现一个形状工厂 ShapeFactory 来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。样例例1:输入:ShapeFactory sf = new ShapeFactory();Shape shape = sf.getShape("Square");shape.draw();输出: ---- | | | ...

2019-02-12 20:48:55 183

原创 【一次过】Lintcode 494. 双队列实现栈

利用两个队列来实现一个栈的功能样例例1:输入:push(1)pop()push(2)isEmpty() // return falsetop() // return 2pop()isEmpty() // return true例2:输入:isEmpty()解题思路:q1是专职进出栈的,q2只是个中转站入栈:直接入队列q1即可 出栈:把q1...

2019-02-12 16:51:44 409

原创 【一次过】Lintcode 493. 维护队列 II

实现一个双端队列push_front(item). 将新项添加到队列的前面。 push_back(item). 将新项添加到队列的后面。 pop_front(). 将第一个项移出队列,返回它。 pop_back(). 将最后一项移出队列,返回它。样例例1:输入:push_front(1)push_back(2)pop_back() // return 2pop_bac...

2019-02-12 16:24:53 169 1

原创 【一次过】Lintcode 482. 二叉树的某层节点之和

计算二叉树的某层节点之和。样例例1:输入:1 / \ 2 3 / \ / \4 5 6 7/ \ 8 9 和depth= 2输出:5例2:输入:1 / \ 2 3 / \ / \4 5 6 7/ \ 8 9 ...

2019-02-12 09:54:22 401

原创 【一次过】Lintcode 481. 二叉树叶子节点之和

计算二叉树的叶子节点之和样例例1:输入:     1    / \   2 3 /4输出:7。例2:输入:    1      \       3输出:3。解题思路1:遍历。/** * Definition of TreeNode: * public class TreeNode { * public int val;...

2019-02-12 09:28:06 465

原创 【两次过】Lintcode 470. 扭转后等价的二叉树

检查两棵二叉树是否在经过若干次扭转后可以等价。扭转的定义是,交换任意节点的左右子树。等价的定义是,两棵二叉树必须为相同的结构,并且对应位置上的节点的值要相等。样例例1:输入:{1,2,3,4},{1,3,2,#,#,#,4}输出:true说明: 1 1 / \ / \ 2 3 和 ...

2019-02-12 09:17:26 282 1

原创 【一次过】Lintcode 468. 对称二叉树

给你一颗二叉树,判断是否是对称二叉树样例例1:输入:{1,2,2,3,4,4,3}输出:true说明: 1 / \ 2 2 / \ / \ 3 4 4 3是一个对称的二叉树。例2:输入:{1,2,2,#,3,#,3}输出:false说明:1 / \...

2019-02-10 10:17:11 192

原创 【两次过】Lintcode 467. 完全二叉树

判断一个二叉树是否是完全二叉树样例例1:输入:{1,2,3,4}输出:true说明:         1        / \       2 3     /    4是完全二叉树。例2:输入:{1,2,3,#,4}输出:false说明:         1        / \       2 3       \        4...

2019-02-10 10:03:13 174

原创 【一次过】Lintcode 462. 目标出现总和

给一个升序的数组,以及一个target,找到它在数组中出现的次数。样例样例1:输入:[1,3,3,4,5]和target= 3,输出:2。样例2:输入:[2,2,3,4,6]和target= 4,输出:1。样例3:输入:[1,2,3,4,5]和target= 6,输出:0。挑战时间复杂度在O(logn)内解题思路:明显思路是二分搜索。需...

2019-02-10 09:31:29 234

空空如也

空空如也

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

TA关注的人

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