随笔分类 - LintCode 代码
摘要:"184 最大数" 给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项 最后的结果可能很大,所以我们返回一个字符串来代替这个整数。 样例 给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。 挑战 在 O(nlogn) 的时间复杂度内完成。 标签 排
阅读全文
摘要:"182 删除数字" 给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。 找到删除 k 个数字之后的最小正整数。 N 样例 给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4 返回一
阅读全文
摘要:"181 将整数A转换为B" 如果要将整数A转换为B,需要改变多少个bit位? 注意事项 Both n and m are 32 bit integers. 样例 如把31转换为14,需要改变2个bit位。 (31)10=(11111)2 (14)10=(01110)2 标签 比特位操作 Crack
阅读全文
摘要:"179 更新二进制位" 给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串) 注意事项 In the function, the numbers N and M will given in decimal, you
阅读全文
摘要:"178 图是否是树" 给出 n 个节点,标号分别从 0 到 n 1 并且给出一个 无向 边的列表 (给出每条边的两个顶点), 写一个函数去判断这张`无向`图是否是一棵树 注意事项 你可以假设我们不会给出重复的边在边的列表当中. 无向边 [0, 1] 和 [1, 0] 是同一条边, 因此他们不会同时
阅读全文
摘要:"177 把排序数组转换为高度最小的二叉搜索树" 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 注意事项 There may exist multiple valid solutions, return any of them. 样例 给出数组 [1,2,3,4,5,6,7],
阅读全文
摘要:"176 图中两个点之间的路线" 给出一张有向图,设计一个算法判断两个点 s 与 t 之间是否存在路线。 样例 如下图: for s = B and t = E, return true for s = D and t = C, return false 标签 Cracking The Coding
阅读全文
摘要:"175 翻转二叉树" 翻转一棵二叉树 样例 挑战 递归固然可行,能否写个非递归的? 标签 二叉树 思路 遍历树,交换每个节点的左右子树 code
阅读全文
摘要:"173 链表插入排序" 用插入排序对链表排序 样例 Given 1 3 2 0 null, return 0 1 2 3 null 标签 排序 链表 思路 先插入一个值为 INT_MIN 的头结点,可以使操作跟简单方便 code
阅读全文
摘要:"172 删除元素" 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。 元素的顺序可以改变,并且对新的数组不会有影响。 样例 给出一个数组 [0,4,4,0,0,2,4,4],和值 4 返回 4 并且4个元素的新数组为[0,0,0,2] 标签 数组 两根指针 思路 将待删除元素放入
阅读全文
摘要:"171 乱序字符串" 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。 注意事项 所有的字符串都只包含小写字母 样例 对于字符串数组 ["lint","intl","inlt","code"] 返
阅读全文
摘要:"170 旋转链表" 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1 2 3 4 5 null和k=2 返回4 5 1 2 3 null 标签 基本实现 链表 思路 利用 "lintcode 166 链表倒数第n个节点" 的思路,旋转链表就是将此链表倒数第
阅读全文
摘要:"167 链表求和" 你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。 样例 给出两个链表 3 1 5 null 和 5 9 2 null,返回 8 0 8 null 标签 链表 Cr
阅读全文
摘要:"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 思路
阅读全文