摘要: 问题 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 示例 字符串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示数值, 但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 解答1:确定有限状态自动机(D 阅读全文
posted @ 2021-02-25 21:53 tmpUser 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 迭代 可以将幂运算的幂改为二进制写法,很容易就能找到其中的规律。 class Solution { public: int m = 1000000007; // 取模防止结果超出范围 long myPow(long x, int n) { long res = 1; while (n > 0) { 阅读全文
posted @ 2021-02-25 10:20 tmpUser 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 问题 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 // Definition for a binary tree node. struct TreeNode { int val; TreeNo 阅读全文
posted @ 2021-02-24 21:00 tmpUser 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 问题 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 // Definition for a binary tree node. struct TreeNode { int val; TreeNo 阅读全文
posted @ 2021-02-24 20:48 tmpUser 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 问题 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 示例 输入: pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出: true 解释: 我们可以按以下顺序执行: push(1), push 阅读全文
posted @ 2021-02-24 17:52 tmpUser 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 问题 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 解答 class MinStack { public: void push(int x) { s.push(x); if (s_min.empty( 阅读全文
posted @ 2021-02-24 17:08 tmpUser 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 问题 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 输入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,3,6,9,8,7,4,5] 解答 class Solution { public: vector<int> spiralOrd 阅读全文
posted @ 2021-02-24 15:13 tmpUser 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 问题 请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。 阅读全文
posted @ 2021-02-23 22:55 tmpUser 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 问题 给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m-1] 。请问k[0]*k[1]*...*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘 阅读全文
posted @ 2021-02-23 15:44 tmpUser 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 前序遍历:根左右 递归 class Solution { vector<int> res; public: vector<int> preorderTraversal(TreeNode* root) { if (!root) return {}; // 前序操作 res.push_back(root 阅读全文
posted @ 2021-02-22 16:41 tmpUser 阅读(316) 评论(0) 推荐(0) 编辑