摘要:
"166 链表倒数第n个节点" 找到单链表倒数第n个节点,保证链表中节点的最少数量为n。 样例 给出链表 3 2 1 5 null和n = 2,返回倒数第二个节点的值1. 标签 链表 Cracking The Coding Interview 思路 使用 快慢个指针,快指针比慢指针先走 n 步,当快 阅读全文
摘要:
"163 不同的二叉查找树" 给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种? 样例 给出n = 3,有5种不同形态的二叉查找树: 标签 卡特兰数 动态规划 思路 参考博客 "http://blog.sina.com.cn/s/blog_5ce680a40102vqgu.html" 阅读全文
摘要:
"162 矩阵归零" 给定一个m×n矩阵,如果一个元素是0,则将其所在行和列全部元素变成0。 需要在原矩阵上完成操作。 样例 给出一个矩阵 [ [1, 2], [0, 3] ] 返回 [ [0, 2], [0, 0] ] 挑战 你是否使用了额外的空间? 一个直接的解决方案是使用 O(MN) 的额外空 阅读全文
摘要:
"161 旋转图像" 给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。 样例 给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]] 挑战 能否在原地完成? 标签 Cracking The Coding Interview 矩阵 思路 先上下交换矩阵行,然 阅读全文
摘要:
"160 寻找旋转排序数组中的最小值 II" 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 数组中可能存在重复的元素。 注意事项 The array may contain duplicates. 样例 阅读全文
摘要:
"158 两个字符串是变位词" 写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。 说明 What is Anagram? Two strings are anagram if they can be the same after change th 阅读全文
摘要:
"157 判断字符串是否没有重复字符" 实现一个算法确定字符串中的字符是否均唯一出现 样例 给出"abc",返回 true 给出"aab",返回 false 挑战 如果不使用额外的存储空间,你的算法该如何改变? 标签 数组 字符串处理 Cracking The Coding Interview 思路 阅读全文
摘要:
"156 合并区间" 给出若干闭合区间,合并所有重叠的部分。 样例 给出的区间列表 = 合并后的区间列表: [ [ [1, 3], [1, 6], [2, 6], = [8, 10], [8, 10], [15, 18] [15, 18] ] ] 挑战 O(n log n) 的时间和 O(1) 的额 阅读全文
摘要:
"155 二叉树的最小深度" 给定一个二叉树,找出其最小深度。 二叉树的最小深度为根节点到最近叶子节点的距离。 样例 给出一棵如下的二叉树: 这个二叉树的最小深度为 2 标签 二叉树 深度优先搜索 思路 与 "LintCode 97.二叉树的最大深度" 类似,不同的是在返回左右子树深度时,二叉树的深 阅读全文
摘要:
"153 数字组合 II" 给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次。 注意事项 所有的数字(包括目标数字)均为正整数。 元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。 阅读全文