刷题
阿七秃了
hello world
展开
-
二叉树 常见面试题 C++实现
文章目录1. 前序遍历的非递归实现2. 中序遍历的非递归实现3. 后序遍历的非递归实现4. 求二叉树的深度待续1. 前序遍历的非递归实现LeetCode 144class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> vec; ...原创 2020-04-17 10:07:30 · 187 阅读 · 0 评论 -
常用排序算法 C++实现
待更新算法平均时间复杂度最坏时间复杂度空间复杂度是否稳定排序适用情况快速排序O(nlog2n)数组有序时O(n^2)T(log2n)~T(n)否n较大,且数组无序1.快速排序快速排序的思想在于通过一次交换来解决多个元素逆序的问题,要解决多个元素逆序问题就不能和冒泡一样只交换相邻元素的位置,所以快速排序会跨着跳。不同于使用两个low和high两个下标...原创 2020-03-05 12:38:53 · 161 阅读 · 0 评论 -
刷题的一些技巧
1.两个整数相加防止溢出int mid = low + (high - low) / 2;2.判断正整数是否溢出int value=xxx;unsigned v= value;v=v+xx;if((v&INT_MIN)!=0){cout<<"溢出了"<<endl;}else{cout<<"没有溢出"<endl;}...原创 2020-03-29 14:48:30 · 226 阅读 · 0 评论 -
leetcode中剑指offer的习题 C++语言实现(2)
面试题9 用两个栈实现队列/*在写的时候知道只要利用另外一个栈,将其原来栈中的内容反转就可以了,但是忘记了stack_2中只要还有元素,那么它就可以出栈,因为它已经是元素的逆序了。但是我在每次删除元素的时候都将stack1中的元素,变到stack2中,出栈之后再压会stack1中,这样耗费的很多性能,真的是有够笨的*/// class CQueue {// public:/...原创 2020-03-05 23:22:14 · 131 阅读 · 0 评论 -
leetcode中剑指offer的习题 C++语言实现(1)
面试题5 替换空格第一种方法使用str的成员函数replace来完成。第二种方法先创建一个容量足够大的string,然后将源字符串中的元素一个一个加进去,如果遇到空格,则加入%20.因为返回值是string需要调用构造函数,但是返回值后,局部变量将被销毁,所以调用std::move()将返回值转化为右值,使其调用移动构造函数,可以提高运行速度。// #include<algorit...原创 2020-03-04 19:45:57 · 182 阅读 · 0 评论