随笔分类 - LintCode 代码
摘要:"74 第一个错误的代码版本" 代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。 你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法
阅读全文
摘要:"64 合并排序数组 II " 合并两个排序的整数数组A和B变成一个新的数组。 注意事项 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。 样例 给出 A = [1, 2, 3, empty, empty], B = [4, 5] 合并之后 A 将变成 [1,2,3,4,
阅读全文
摘要:"63 搜索旋转排序数组 II" 跟进“搜索旋转排序数组”,假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中。 样例 给出[3,4,4,5,7,0,1,2]和target=4,返回 true 标签 数组 排序数组 二分法 思
阅读全文
摘要:"62 搜索旋转排序数组" 假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2)。给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回 1。 你可以假设数组中不存在重复的元素。 样例 给出[4, 5, 1, 2, 3
阅读全文
摘要:"60 搜索插入位置" 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。 你可以假设在数组中无重复元素。 样例 [1,3,5,6],5 → 2 [1,3,5,6],2 → 1 [1,3,5,6], 7 → 4 [1,3,5,6],0 → 0
阅读全文
摘要:"57 三数之和" 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。 注意事项 在三元组(a, b, c),要求a 结果不能包含重复的三元组。 样例 如S = { 1 0 1 2 1 4}, 你需要返回的三元组集合的是: ( 1, 0,
阅读全文
摘要:"55 比较字符串" 比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序。 样例 给出 A = "ABCD" B = "ACD",返回 true 给出 A = "ABCD" B = "AABC",
阅读全文
摘要:"52 下一个排列" 给定一个整数数组来表示排列,找出其之后的一个排列。 注意事项 排列中可能包含重复的整数 样例 给出排列[1,3,2,3],其下一个排列是[1,3,3,2] 给出排列[4,3,2,1],其下一个排列是[1,2,3,4] 标签 排列 LintCode 版权所有 思路 从后往前找,找
阅读全文
摘要:"51 上一个排列" 给定一个整数数组来表示排列,找出其上一个排列。 注意事项 排列中可能包含重复的整数 样例 给出排列[1,3,2,3],其上一个排列是[1,2,3,3] 给出排列[1,2,3,4],其上一个排列是[4,3,2,1] 标签 排列 LintCode 版权所有 思路 所谓上一个排列,是
阅读全文
摘要:"49 字符大小写排序" 给定一个只包含字母的字符串,按照先小写字母后大写字母的顺序进行排序。 注意事项 小写字母或者大写字母他们之间不一定要保持在原始字符串中的相对位置。 样例 给出"abAcD",一个可能的答案为"acbAD" 挑战 在原地扫描一遍完成 标签 LintCode 版权所有 字符串处
阅读全文
摘要:"47 主元素 II" 给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。 注意事项 数组中只有唯一的主元素 样例 给出数组[1,2,1,2,1,3,3] 返回 1 挑战 要求时间复杂度为O(n),空间复杂度为O(1)。 标签 LintCode 版权所有 枚举法 贪心
阅读全文
摘要:"45 最大子数组差" 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) SUM(B)|最大。 返回这个最大的差值。 注意事项 子数组最少包含一个数 样例 给出数组[1, 2, 3, 1],返回 6 挑战 时间复杂度为O(n),空间复杂度为O(n) 标签 贪心
阅读全文
摘要:"44 最小子数组" 给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。 注意事项 子数组最少包含一个数字 样例 给出数组[1, 1, 2, 1],返回 3 标签 LintCode 版权所有 子数组 贪心 数组 code class Solution { public: / @param
阅读全文
摘要:"42 最大子数组 II " 给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。 每个子数组的数字在数组中的位置应该是连续的。 返回最大的和。 注意事项 子数组最少包含一个数 样例 给出数组 [1, 3, 1, 2, 1, 2] 这两个子数组分别为 [1, 3] 和 [2, 1, 2] 或
阅读全文
摘要:"39 恢复旋转排序数组" 给定一个旋转排序数组,在原地恢复其排序。 说明 什么是旋转数组? 比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3] 样例 [4, 5, 1, 2, 3] [1, 2, 3, 4,
阅读全文
摘要:"36 翻转链表 II" 翻转链表中第m个节点到第n个节点的部分 注意事项 m,n满足1 ≤ m ≤ n ≤ 链表长度 样例 给出链表1 2 3 4 5 null, m = 2 和n = 4,返回1 4 3 2 5 null 挑战 在原地一次翻转完成 标签 链表 思路 借助2个空的节点,置于链表头部
阅读全文
摘要:"34 N皇后问题 II" 根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局。 样例 比如n=4,存在2种解决方案 标签 递归 思路 参考 "http://www.cnblogs.com/libaoquan/p/7073252.html" code class Solution
阅读全文
摘要:"33 N皇后问题" n皇后问题是将n个皇后放置在n n的棋盘上,皇后彼此之间不能相互攻击。 给定一个整数n,返回所有不同的n皇后问题的解决方案。 每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分别表示一个女王和一个空位置。 样例 对于4皇后问题存在两种解决的方案: [ [".Q.."
阅读全文
摘要:"最小子串覆盖" 给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。 注意事项 如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回起始位置最小的子串。 说明 在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?
阅读全文
摘要:"数组划分" 给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得: 所有小于k的元素移到左边 所有大于等于k的元素移到右边 返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。 注意事项 你应该真正的划分数组 nums,而不仅仅只
阅读全文