算法与数据结构
Mc.Zhao
这个作者很懒,什么都没留下…
展开
-
算法&数据结构学习(2) 剑指offer刷题笔记(7)
面试题38. 字符串的排列 方法1;交换回溯法(时间消耗比较爆炸) class Solution { public: vector<string> permutation(string s) { //交换回溯法 backtrack(s,0); return res; } private: vector<string> res; void backtrack(string s,int idx)原创 2020-05-14 15:28:01 · 348 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(6)
面试题33. 二叉搜索树的后序遍历序列 解法1:递归 思路:定义一个辅助函数helper进行递归判断是否符合二叉搜索树,二叉搜索树的定义要求其左子树严格小于根节点,右子树严格大于根节点。因此,对于没一个序列,由后序遍历可知,尾元素为根节点,因此在每一层的遍历时,划分出相应的左右子树,即元素值比根节点小的序列为其左子树,大的为其右子树,同时每一轮的循环划分子树过程进行严格判断,右子树的尾元素的m==r是否成立,不成立即说明不符合后序遍历的二叉搜索树。 class Solution { public:原创 2020-05-12 21:33:09 · 141 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(5)
面试题28. 对称的二叉树 解法1:递归法 思路:二叉树相关的很多问题都可以想到用递归去求解,定义一个辅助函数isMirror()帮助递归判断两棵树书否镜像。 代码如下: class Solution { public: bool isSymmetric(TreeNode* root) { //递归法 if(!root) return true; return isMirror(root->left,root->right); }原创 2020-05-11 19:12:00 · 151 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(4)
面试题20. 表示数值的字符串 本题的题目描述比较简单,例子比较少,解法也有多种,比如DFA确定有限状态机(然鹅我不会,回头再去了解了解),那咋办呢,有个投机取巧的方法就是正则表达式匹配直接调用库函数,那就不说了。正常的解法那就按照题目的意思和规则办,有啥情况就分析啥情况,走一步看一步就完事。 代码如下(思路在注释): class Solution { public: bool isNumber(string s) { if(s.empty() || s==" ") return原创 2020-05-10 19:36:19 · 551 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(3)
新的一天,新的开始!!! 面试题15. 二进制中1的个数 思路:本题主要考察的是一个位运算。主要解题思路有两种:1、位与&运算,对于n&1如果为1,即末位是1,否则为0,借助这个思路,可以对n的没一位,按位与1进行判断,为1则cnt++,然后将n右移一位,直至n为零;2、方法二需要一些技巧:即n&(n-1)这个操作,这个操作会将n的最右侧的1置零,这样逐位将n的最右侧的1置零并统计个数,直至n为0即可。 代码如下: class Solution { public: int原创 2020-05-09 19:14:14 · 314 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(2)
新的一天,新的开始,继续《剑指offer》!!! 面试题10- I. 斐波那契数列 思路1:在许多的算法与数据结构的书籍中,讲到递归的时候免不了肯定讲斐波那契数列,这是一个很典型的递归过程,写法很简单,但是很明显的缺点是递归中重复计算的部分很多,可以采用记忆化递归改进,如果没有优化,当n大于43时计算时间延迟明显能感受到。递归部分比较容易写出,直接省略。 思路2:当讲到递归特别是能使用记忆化递归...原创 2020-05-08 15:51:28 · 209 阅读 · 0 评论 -
算法&数据结构学习(1)十大排序算法实现
作为一个非计算机专业的学生,有志要从事软件编程,记录自己的学习收获!!! SortAlgorithm.h文件 各种算法的统一声明以及相关辅助函数的声明。 #pragma once #ifndef SORTALGORITHM_H #define SORTALGORITHM_H #include<vector> #include<list> using namespace ...原创 2020-05-06 17:07:50 · 347 阅读 · 0 评论 -
算法&数据结构学习(2) 剑指offer刷题笔记(1)
算法的世界是真的奇妙,有趣,深深不能自拔!!!前段时间刚学习算法与数据结构的时候都是一脸懵逼,看啥啥不懂,软磨硬泡了两个月,leetcode也刷了两三百题了,剑指Offer也过了一遍,今日起再刷第二遍,同时也对学习进行记录,以便以后自己查看当做笔记!!! 面试题03. 数组中重复的数字 解法1:哈希(C++中set或者unordered_set) class Solution { public:...原创 2020-05-07 14:59:29 · 1037 阅读 · 0 评论