- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 剑指offer :二叉树的前序,中序,后序遍历
1 递归2 非递归class Solution{public://前序遍历//递归实现 void PreOrder(TreeNode *root) { if (root == NULL) { return; } cout << root_val; PreO...
2019-01-03 14:55:21 178
原创 剑指offer 20:包含min函数的栈
包含min函数的栈:1 压入:将value压入数据栈中,如果最小栈为空或者value小于最小栈顶,则把value压入最小栈中; 不然,把最小栈顶压入最小栈中2 弹出,两个都弹3 最小栈中栈顶保存的都是数据栈中的最小值 #include <iostream>#include <stack>#include <assert.h>us...
2019-01-01 19:53:11 146
原创 剑指offer 59:按之字顺序打印二叉树
按之字顺序打印二叉树:先按层次遍历,保存到数组中,打印的时候,遇到偶数行,反转打印 #include <iostream>#include <algorithm>#include <vector>using namespace std;struct TreeNode{ int val; struct TreeNode ...
2019-01-01 14:06:00 172
原创 剑指offer 58 :对称的二叉树
对称的二叉树 #include <iostream>using namespace std;struct TreeNode{ int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x = 0) :val(x), left(NULL...
2019-01-01 11:49:59 149
原创 剑指offer 57:二叉树的下一个结点
思路:中序遍历中有右子树,就是其右子树的下一个结点, 比如结点5的下一个结点是7没右子树,是其父亲的左子树,下一个结点是其父亲,比如结点9的下一个结点是4没右子树,是父亲的右子树,下一个节点是当前节点所在左子树根,比如结点2的下一个结点是3#include <iostream>using namespace std;struct TreeLinkNo...
2019-01-01 11:10:02 111
原创 剑指offer 24:二叉树中和为某一值的路径
二叉树中和为某一值的路径#include <iostream>#include <vector>using namespace std;using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right; /*TreeNode(int...
2018-12-31 15:49:22 105
原创 剑指offer 22:从上往下打印二叉树
从上往下打印二叉树#include <iostream>#include <vector>using namespace std;using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) ...
2018-12-31 09:53:10 99
原创 剑指offer 18:二叉树的镜像
二叉树的镜像先序遍历#include <iostream>#include <stack>#include <algorithm>using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(in...
2018-12-31 09:11:25 104
原创 剑指offer 17:树的子结构
树的子结构 #include <iostream>using namespace std;//树的子结构struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NUL...
2018-12-30 21:29:52 113
原创 剑指offer 4 :重建二叉树
重建二叉树:#include <iostream>#include <vector>//重建二叉树using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), ...
2018-12-30 20:47:32 118
原创 剑指offer 12 : 数值的整数次方
1 考虑指数和底数不同的条件#include <iostream>#include <cmath>using namespace std;class solution{public: //12 数值的整数次方 double power(double base, int exponent) { if (exponent =...
2018-12-30 14:30:43 106
原创 剑指offer: 56 删除链表中重复的节点
#include <iostream>using namespace std;struct ListNode{ int val; struct ListNode *next; ListNode(int x = 0) : val(x),next(NULL) { }};class Solution{...
2018-12-30 11:26:14 118
原创 剑指offer 36:两个链表的第一个公共节点
#include <iostream>struct ListNode{public: int val; struct ListNode *next;};using namespace std;class solution{public: //36 找到两个链表的第一个公共节点 //让长的一个链表先走,实现右对齐 ...
2018-12-30 10:14:55 88
原创 剑指offer 16:合并两个有序链表
递归实现#include <iostream>using namespace std;struct ListNode{public: int val; struct ListNode *next;};class Solution{public: // 16 合并两个有序链表 //递归实现 ListN...
2018-12-29 22:02:18 134
原创 剑指offer 15:反转链表
#include <iostream>using namespace std;struct ListNode{public: int val; struct ListNode *next;};class Solution{public: ListNode* ReverseList(ListNode* pHead) { L...
2018-12-29 21:42:29 81
原创 剑指offer 14:链表中倒数第K个节点
方法:双指针法 right指针先走K步,然后left,right指针一起走,当right = NULL,left指针到倒数第K个节点#include <iostream>#include <stack>#include <vector>using namespace std;struct ListNode{public: int va...
2018-12-29 21:01:15 119
原创 剑指offer 3:从尾到头打印链表
利用栈的先进后出特性#include <iostream>#include <stack>#include <vector>using namespace std;struct ListNode{public: int val; struct ListNode *next;};class Solution{publi...
2018-12-29 20:57:06 95
原创 Qt: This does not seem to be a "Debug"build 解决办法
问题:在linux下用qt Creator 调试程序时可能会出现以下信息解决方法就是,点击右侧项目,出现如下框图。然后“编辑构建配置"添加“Debug”,选择Debug,紧接着点击“Run CMake” 出现如下框图,我们在参数那填入"-DCMAKE_BUILD_TYPE=Debug",然后点击“执行CMake”,就能解决上述问题,将编译器从Release模式...
2018-12-27 14:28:09 8318 1
原创 剑指offer 5:用两个栈实现队列
#include <iostream>#include <stack>using namespace std;class Solution{public: void push(int node) { stackIn.push(node);//入栈 } int pop() { int node = -1;...
2018-12-26 15:14:31 81
原创 数据结构与算法: 快速排序
void quickSort(vector<int> &arra, int L, int R) { int *p; p = partition2(arra, L, R); cout << p[0] << endl; quickSort(arra, L, p[0] - 1); ...
2018-12-25 15:46:42 86
原创 剑指offer 44:翻转单词顺序序列
// 翻转单词顺序序列 // 先翻转所有单词,再逐个单词翻转 string ReverseSentence(string str) { if (str.size() == 0) { return " "; } Reverse(str, 0, str.size() - 1); //翻转所有单词 ...
2018-12-25 10:19:05 209
原创 剑指offer 43:左旋转字符串
1 两倍串 截取2 三次翻转#include <iostream>#include <string>using namespace std;class Solution{public: //两倍串截取 string LeftRotationString(string str, int n) { if (str....
2018-12-25 09:15:53 101
原创 剑指offer 34:第一个只出现一次的字符
遍历#include <iostream>#include <string>using namespace std;class Solution{public: int FirstNotRepeatingChar(string str) { if (str.length() == 0) { retur...
2018-12-25 08:19:03 105
原创 剑指offer 2 替换空格
1 遍历2 找到空格后, count+1,len = length + 2*count, 插入字符#include <iostream>#include <vector>using namespace std;class Solution{public: // %20 替换空格 // 遍历 void ReplaceSpace(...
2018-12-24 21:16:18 88
原创 剑指offer 50 找到数组中重数的数字
1 先排序,再寻找#include <iostream>#include <vector>using namespace std;class Solution{public: //找到数组中重复的数字 bool duplicate(vector<int> &numbers, int* duplication)...
2018-12-24 19:18:34 193
原创 剑指offer 37 数字在排序数组中出现的次数
1 遍历寻找2 二分查找法: 正常二分法 递归二分法 #include <iostream>#include <vector>using namespace std;class Solution{public: // 数字在排序数组中出现的次数 //遍历 int GetNumberOfK(vector<...
2018-12-24 16:32:02 89
原创 剑指offer 28 数组中出现次数超过一半的数字
1 先排序 ,再遍历,计数值大于一半,则为那个数2 阵地攻守 ,计数相同加1,不同减1,计数为0,换接下来一个数,计数为1 //数组中出现次数超过一半的数字 int MoreHalfNumber(vector<int> &numbers) { if (numbers.size() == 0) { return 0;...
2018-12-24 11:03:34 106 1
原创 剑指offer 30 : 连续子数组的最大和
1 两次遍历 寻找最大和2 贪心思想,sum为负数,sum为当前值, sum大于0,为sum加当前值; 如果全为负数,找到最大的一个负数//连续子数组的最大和 int FindGreatSum(vector<int> array) { if (array.size() == 0) { return 0; } ...
2018-12-24 10:58:00 86
原创 剑指offer:13 调整数组中的偶数到奇数后面
1 冒泡解法 稳定2 辅助数组 稳定3 两个指针 不稳定#include <iostream>#include <vector>using namespace std;class solution{public: //冒泡解法 void reOerderArray(vector<int> &array){ ...
2018-12-23 21:21:22 74
原创 数据结构与算法: 排序1
1 冒泡排序2 选择排序3 插入排序 #include <iostream>#include <vector>using namespace std;class Solution{public: //冒泡排序 void bubble_sort(vector<int> &array) { ...
2018-12-23 18:34:06 91
原创 剑指offer 35 数组中的逆序对
1: 遍历,只要前面的值大于后面的一个值,就加1;2 : 冒泡排序,交换一次,就+1;3: 归并排序: #include <iostream>#include <vector>using namespace std;class solution{public: //暴力,遍历 int Inverspairs(vector...
2018-12-23 18:29:34 59
原创 剑指offer:1 二维数组的查找
1暴力解法,直接遍历找值2如果数组从右上角出发,则往下转或往左转,,如果数组从左下角出发,则往右转或往上转#include <iostream>#include <vector>using namespace std;class Solution{public: //暴力,遍历 bool Find(vector<vector&l...
2018-12-23 18:24:52 78
原创 剑指offer:6 旋转数组的最小数字
三种方法:1 遍历直接寻找最小值2 依据数组特性,最小值在最大值的后面3 二分查找,定义low,high两个指针,还有mid指针,mid=low+(high-low)/2,如果array[low]小于array[mid],则最小值在array[mid] 后面,此时mid为low,相反,mid为high。如果最终high-low==0,最小值即为array[high].#in...
2018-12-23 18:18:17 62
原创 ubuntu16.04 gedit显示行数的设置
今天通过gedit写代码的时候想找到具体的文件行数,但是gedit默认是不显示代码行数的,所以需要设置一下:首先选择编辑-》重选项,查看里对“显示行号(D)”打勾,OK。...
2018-10-19 10:38:08 8534 7
原创 keras:Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
完整错误信息:Process finished with exit code 137 (interrupted by signal 9: SIGKILL)出现这个信息说明发生了内存不足的问题,在keras中,可以选择小的batch_size,不要把一整个大的文件一次性读到内存里。如果是ubuntu系统,出现此问题的一个原因是cpu不够了,当运行的网络很复杂的时候,需要加载很大的权重,需要cpu...
2018-10-10 09:40:15 24825 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人