摘要: 题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 阅读全文
posted @ 2018-05-06 19:17 FlyingWarrior 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的 阅读全文
posted @ 2018-05-04 11:25 FlyingWarrior 阅读(8241) 评论(1) 推荐(0) 编辑
摘要: 题目描述 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 解题思路 本题其实是构造卡特兰数的应用,采用动态规划思想求解。对于n个结点,除去根节点,还剩余n-1个结点,因此左右子树的结点数分配方式如下所示: (0,n-1), (1,n-2), (2, n-3), .. 阅读全文
posted @ 2018-05-03 11:14 FlyingWarrior 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一棵二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义: “对于有根树T的两个结点u、v,最近公共祖先表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。”(一个节点也可以是它自己的祖先) _______3______ / \ ___5__ ___1__ 阅读全文
posted @ 2018-05-02 17:05 FlyingWarrior 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2018-04-29 19:57 FlyingWarrior 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述 对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。 给定字符串A以及它的长度n,请返回最长回文子串的长度。 测试样例: "abc1234321ab",12 返回:7 对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。 给定字符串A以及它的长度n,请返回最长回文子 阅读全文
posted @ 2018-04-28 20:27 FlyingWarrior 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵 阅读全文
posted @ 2018-04-28 16:01 FlyingWarrior 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任 阅读全文
posted @ 2018-04-26 11:23 FlyingWarrior 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647 1a33 输出 21474 阅读全文
posted @ 2018-04-26 10:41 FlyingWarrior 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解题思路 考虑用两个栈分别记录各层节点:s1记录奇数层节点,s2记录偶数层节点。首先把根节点推入s1,设置bool型变量isOdd记录是否为奇数 阅读全文
posted @ 2018-04-24 15:09 FlyingWarrior 阅读(146) 评论(0) 推荐(0) 编辑