- 博客(20)
- 收藏
- 关注
原创 最长斐波那契子序列的长度
问题描述如果序列 X_1, X_2, ..., X_n 满足下列条件,说它就英文的 斐波那契式 的:n >= 3 对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}定给一个严格递增的正整数数组形成序列,找到 A 中最长的那斐波契式的子序列的长度。如果一个不存在,返回0。(回想一下,子序列的英文从原序列 A 中派生出来的,它从 ...
2018-12-31 00:10:31
513
原创 二叉搜索树中第k小的数
问题描述给定一个二叉搜索树,一个关系编写函数 kthSmallest 来查找其中第 ķ 个最小的元素。说明:你可以假设k总是有效的,1≤k≤二叉搜索树元素个数。示例1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例2:输入: root = [5,3,6,2,4,null,null...
2018-12-31 00:09:18
1022
原创 字符串相乘
问题描述定给两个以字符串形式表示的非负整数 num1 状语从句: num2,报道查看 num1 状语从句: num2 的乘积,它们的乘积也表示为字符串形式。示例1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 状语从句:
2018-12-31 00:08:35
219
原创 最长连续序列
问题描述给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:[1, 2, 3, 4]。它的长度为 4。代码实现思路:用一个字典存储中间值遍历数组,对于数字I,找到的i-1和i + 1的对应的值值,如果不存在则记为0。然后把我的值值设为I-1,I + 1个的值值之和,并加1,相当于连接起来。同时置最左端和最右端的数的值值为我的值值(中...
2018-12-31 00:08:21
197
原创 旋转图像
问题描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转90度。说明:必须你在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], ...
2018-12-31 00:07:56
201
原创 无重叠区间
问题描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间[1,2]和[2,3]的边界相互“接触”,但没有相互重叠。示例1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例2:输入: [ [1,2], [1,...
2018-12-31 00:07:38
367
原创 插入区间
问题描述给出一个无重叠的,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例2:[[1,2],[3,5],[6,7],[8,10],[12,1...
2018-12-31 00:07:09
129
原创 移掉k位数字
问题描述给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于10002且≥k 。 NUM 不会包含任何前导零。示例1:输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例2:输入: num ...
2018-12-31 00:06:42
890
原创 最大正方形
问题描述在一个由0和1组成的二维矩阵内,找到只包含1的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4代码实现思路:动态规划的办法,我们可以先求出正方形最大的边长,我们推导出的公式是,原来的数组是ARR [] []; f [] []是存储结果的表,当最大正方形包括arr [i] [j]...
2018-12-31 00:05:46
241
原创 基本计算器
问题描述实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。整数除法仅保留整数部分。示例1:输入: "3+2*2"输出: 7示例2:输入: " 3/2 "输出: 1示例3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。 请不要使用...
2018-12-31 00:05:28
410
原创 比较版本号
问题描述比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个...
2018-12-30 13:27:04
201
原创 二叉树的中序遍历
问题描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?代码实现思路:1、 借用栈的结构2、 把root、以及root左孩子都压入栈中 2.1、node = pop() 2.2、list.add(...
2018-12-30 12:55:34
121
原创 搜素二位矩阵
问题描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例 ...
2018-12-30 12:50:25
161
原创 删除排序链表中的重复元素
问题描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3代码实现思路:每一次都比较当前节点和下一个节点的值,如果不同,就将当前节点后移,如果相同,就不改变当前节点,直至下一个节点的...
2018-12-30 12:45:55
213
原创 全排列
问题描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码实现思路:集合是{a,b,c},那么这个集合中元素的全部排列是{(a,b,c),(a,c,b),(b,a,c),(b,c,a),(c,a...
2018-12-30 12:40:49
221
原创 删除链表的倒数第N个节点
问题描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。代码实现思路:链表的题目基本上都是优先考虑双指针。一个指针先走N步,然后两个指针同步移动到...
2018-12-30 12:34:25
120
原创 括号生成
问题描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]代码实现思路:定义两个变量left和right分别表示剩余左右括号的个数。如果在某次递归时,左括号的个数大于右括号的个数...
2018-12-30 12:28:13
738
原创 最长回文子串
问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"代码实现暴力求解思路: 1)从最长的子串开始,遍历所有该原字符串的子串; 2)每找出一个字符串,就判断该字...
2018-12-30 12:18:18
215
原创 无重复字符的最长子串
问题描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无...
2018-12-30 12:12:39
124
原创 Capacitated Facility Location Problem贪心算法实现
问题描述给定Ñ个工厂和米个顾客,开工厂需要一定的费用,一个工厂有一定的容量限制,每个顾客也有一定的需求,而每个顾客要选取某个工厂也需要一定的分配费用,现在要求找出一个分配方案,把顾客分配给不同的工厂,然后在可以满足所有顾客需求的前提下让所有的花费(开工厂的花费和分配的花费)最小。问题分析:解决思路设集合I = {1,...,m}是所有设施集合J = {1,...,n}是...
2018-12-30 12:01:57
304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人