lintcode:验证二叉查找树
摘要:题目 给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为: 节点的左子树中的值要严格小于该节点的值。 节点的右子树中的值要严格大于该节点的值。 左右子树也必须是二叉查找树。 一个节点的树也是二叉查找树。 解题 二叉查找树中序遍历是升序,可以中序遍历后,根据是否升序判断是否是二叉
阅读全文
lintcode:二叉树的路径和
摘要:题目 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 解题 下面有个小bug 最后比较的时候是叶子节点为空,左右都有叶子结点,所有会出现重复的情况,聪明的你可能会想到保留不重复的结果 但是但一个树的结点都相同时候就不可以了 两层
阅读全文
lintcode:字符串置换
摘要:题目 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。 置换的意思是,通过改变顺序可以使得两个字符串相等。 样例 "abc" 为 "cba" 的置换。 "aabc" 不是 "abcc" 的置换。 解题 定义一个数组统计字符次数,去除字符次数,数组是否为空 public c
阅读全文
lintcode:格雷编码
摘要:格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个二进制的差异。 给定一个非负整数 n ,表示该代码中所有二进制的总数,请找出其格雷编码顺序。一个格雷编码顺序必须以 0 开始,并覆盖所有的 2^n 个整数。 注意事项 对于给定的 n,其格雷编码顺序并不唯一。 根据以上定义,
阅读全文
lintcode:买卖股票的最佳时机 IV
摘要:买卖股票的最佳时机 IV 假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。 设计一个算法来找到最大的利润。你最多可以完成 k 笔交易。 注意事项 你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票) 样例 给定价格 = [4,4,6,1,1,4,2,5], 且 k = 2,
阅读全文
lintcode:买卖股票的最佳时机 III
摘要:买卖股票的最佳时机 III 假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。 样例 给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6 解题 尝试参考买卖股票的最佳时机 II 提交运行发现错误,每次找到连续的递增子数
阅读全文
lintcode:买卖股票的最佳时机 II
摘要:买卖股票的最佳时机 II 假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。 给出一个数组样例[2,1,2,0,1], 返回 2 解题 参考买卖股票的最佳时
阅读全文
lintcode:买卖股票的最佳时机 I
摘要:买卖股票的最佳时机 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 样例 给出一个数组样例 [3,2,3,1,2], 返回 1 解题 法一:直接暴力,时间发杂度O(N2) public class Sol
阅读全文
lintcode:交错正负数
摘要:交错正负数 给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。 注意事项 不需要保持正整数或者负整数原来的顺序。 样例 给出数组[-1, -2, -3, 4, 5, 6],重新排序之后,变成[-1, 5, -2, 4, -3, 6]或者其他任何满足要求的答案 挑战 原地完成,没有额外
阅读全文
lintcode:Ugly Number I
摘要:Ugly Number Write a program to check whether a given number is an ugly number`. Ugly numbers are positive numbers whose prime factors only include 2,
阅读全文
lintcode:等价二叉树
摘要:等价二叉树 检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。 样例 1 1 / \ / \ 2 2 and 2 2 / / 4 4 就是两棵等价的二叉树。 1 1 / \ / \ 2 3 and 2 3 / \ 4 4 就不是等价的。
阅读全文
lintcode:被围绕的区域
摘要:被围绕的区域 给一个二维的矩阵,包含 'X' 和 'O', 找到所有被 'X' 围绕的区域,并用 'X' 填充满。 样例 给出二维矩阵: X X X X X O O X X X O X X O X X 把被 'X' 围绕的区域填充之后变为: X X X X X X X X X X X X X O X
阅读全文
lintcode:二叉树的所有路径
摘要:二叉树的所有路径 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ]解题深度优先 可以转换成先序遍历:根左右,根结点遍历以后,遍历两个子树,是叶子结点的时候保存路径 /** *
阅读全文
lintcode:快乐数
摘要:快乐数 写一个算法来判断一个数是不是"快乐数"。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。 样例 19 就是一个快乐数。 1^2 + 9^2 = 8
阅读全文
lintcode: 生成括号
摘要:生成括号 给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。 样例 给定 n = 3, 可生成的组合如下: "((()))", "(()())", "(())()", "()(())", "()()()" 解题 参考链接 采用递归树的思想 left: 左括号的数量 right
阅读全文
lintcode:数字组合III
摘要:数字组合III 组给出两个整数n和k,返回从1......n中选出的k个数的组合。 您在真实的面试中是否遇到过这个题? Yes 数字组合III 组给出两个整数n和k,返回从1......n中选出的k个数的组合。 数字组合III 组给出两个整数n和k,返回从1......n中选出的k个数的组合。 您在
阅读全文
lintcode:数字组合 II
摘要:数字组合 II 给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。 注意事项 所有的数字(包括目标数字)均为正整数。 元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。 解集不能包含
阅读全文
lintcode:数字组合I
摘要:数字组合I 给出一组候选数字(C)和目标数字(T),找到C中所有的组合,使找出的数字和为T。C中的数字可以无限制重复被选取。 例如,给出候选数组[2,3,6,7]和目标数字7,所求的解为: [7], [2,2,3] 注意事项 所有的数字(包括目标数字)均为正整数。 元素组合(a1, a2, … ,
阅读全文
lintcode:恢复IP地址
摘要:恢复IP地址 给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。 给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。 给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。 样例 给出字符串 "25525511135",所有可能的IP地址为: [ "255.255.11.135"
阅读全文
lintcode:Wiggle Sort II
摘要:Wiggle Sort II Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3].... 注意事项 You may assume all input has valid an
阅读全文
|
|
|