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