![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Woosual
做着算法的研究却想搞软开
展开
-
顺时针打印矩阵——状态机封装法
最近面试字节跳动时,面试官给了这个题{ {1, 2, 3, 4},{5, 6 ,7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}, {17, 18, 19, 20} };虽然去年做过类似的题,但是需要申请一份空间用于记录矩阵是否被打印,这种思路被面试官直接否定,让我不许开辟空间。由于需要不断判断当前打印值的位置,逻辑上比较麻烦,但是没做出来。后来挂了,自己再考虑这个题时,觉得可以用状态机来解决这一类比较复杂的问题。结合状态机的封装,找到了一中空间复杂度为O(1)的做法,时间复原创 2020-06-26 10:32:08 · 218 阅读 · 0 评论 -
压缩算法-腾讯笔试 用递归的方式代替入栈和出栈
小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为m|S,例如字符串ABCABCABC将会被压缩为[3|ABC],现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩么? 输入描述: 输入第一行包含一个字符串s,代表压缩后的字符串。 S的长度<=1000; S仅包含大写字母、[、]、|; 解压后的字符串长度不超过100000; 压缩递归层数不超过10层; 输出描述: 输出一个原创 2020-06-18 16:22:16 · 225 阅读 · 0 评论 -
求最长回文子串
字符处理编程笔记一 1.最长回文子串 1.最长回文子串 题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 1 2 3 示例 2: 输入: "cbbd" 输出: "bb" 1 2 解法一:暴力解法 1.两重循环遍历所有子串; 2.判断回文子串。 时间复杂度:O(n3) O(n^3)O(n 3 ) #include <iostream> #in..转载 2020-06-12 18:52:41 · 182 阅读 · 0 评论 -
LeetCode动态规划递归调用解法记录
题目描述: 给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子,使得句子中的每一个单词都是dict中的单词 返回所有可能的结果 例如:给定的字符串s="catsanddog", dict=["cat", "cats", "and", "sand", "dog"]. 返回的结果为["cats and dog", "cat sand dog"]. #includ...原创 2020-03-10 15:25:12 · 187 阅读 · 0 评论 -
二叉树的递归遍历与迭代遍历
题目描述 求给定的二叉树的后序遍历。 例如: 给定的二叉树为{1,#,2,3}, 1↵ ↵ 2↵ /↵ 3↵ 返回[3,2,1]. 备注;用递归来解这道题太没有新意了,可以给出迭代的解法么? Given a binary tree, return thepostordertraversal of its nodes' values. For...原创 2020-02-07 10:58:02 · 365 阅读 · 0 评论 -
二叉树的递归遍历
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ //实现二叉树的递归遍历...原创 2020-02-06 10:59:30 · 109 阅读 · 0 评论 -
十大排序算法C++实现
内容转自:https://blog.csdn.net/weixin_41190227/article/details/86600821,采用C++实现。 0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序...转载 2020-06-14 08:57:52 · 317 阅读 · 0 评论 -
计算逆波兰式(后缀表达式)的值——栈的使用
s.empty(); //如果栈为空则返回true, 否则返回false; s.size(); //返回栈中元素的个数 s.top(); //返回栈顶元素, 但不删除该元素 s.pop(); //弹出栈顶元素, 但不返回其值 s.push(); //将元素压入栈顶 题目描述 计算逆波兰式(后缀表达式)的...原创 2020-02-01 10:43:49 · 799 阅读 · 0 评论 -
LeetCode求给定二叉树的最小深度讨论总结
题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest le...原创 2020-01-31 20:33:37 · 585 阅读 · 0 评论