- 博客(10)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 C、C++ const对比
先从一段代码说起:int main(){ int *p; int const a = 10; p = (int *)&a; *p = 20; printf("a = %d\n", a); printf("*p = %d\n", *p); printf("the address of a: %p\n", &a); printf("the address ...
2019-07-29 11:32:08 144
原创 8皇后问题用全排列方法解决----《剑指offer》
题目例如,其中一种解:1 0 0 0 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 0 0 10 0 0 0 0 1 0 00 0 1 0 0 0 0 00 0 0 0 0 0 1 00 0 0 1 0 0 0 0思路 我们可以将棋盘用一个二维数组表示,棋盘上用0代表不同的位置,1表示皇后所在的位置。由于每一行只能有一个皇后,并且皇后不能处于同一列...
2019-07-25 07:52:04 222
原创 正方体上三组对面上的4个顶点的和都相等----《剑指offer》
题目 输入一个含有8个数字的数组,判断有没有可能把这8个数字分别放到正方体的8个顶点上,使得正方体三组相对的面上的4个顶点的和都相等。思路代码#include <iostream>using namespace std;// 判断条件// 下标0-7分别对应正方体编号1-8的顶点bool checking(int data[8]){ bool...
2019-07-23 10:23:21 468
原创 字符串的组合----《剑指offer》
题目 求字符串的所有组合,如字符串"ABC",它的组合有,A,B,C,AB,AC,BC,ABC。思路 分治思想解决组合问题。如果输入n个字符,则这n个字符能构成长度为1的组合、长度为2的组合、…、长度为n的组合。在求n个字符的长度为m(1<=m<=n)的组合的时候,我们把这n个字符分成两部分:第一个字符和其余的所有字符。如果组合里包含第一个字符,则下一步在剩余的字符里选...
2019-07-22 10:23:59 197
原创 字符串的全排列 ----《剑指offer》面试题28
题目 输入一个字符串,打印出该字符串中字符的所有排列。如:abc的所有排列有:abc、acb、bac、bca、cab、cba六种。思路 利用分治方法,把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。我们求整个字符串的排列,可以看成两步: 首先求所有可能出现在第一个位置的字符,即把第一个字符与后面所有的字符交换。 再求后面所有字符的排列。同样...
2019-07-19 10:55:50 150
原创 二叉搜索树与双向链表 ----《剑指offer》面试题27
题目 输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路 可以用分治的思想来解决该问题。如果要将一颗BST(二叉搜索树)转换成一个排序的双向链表,可以将BST简化的看成只有三个结点的树。根结点是BST的根结点,另外两个结点分别代表BST的左子树与又子树。同样又能将左子树与右子树细化成同样的结点。此时,只要懂得如何...
2019-07-18 10:34:02 96
原创 二叉树中和为某一值的路径 ----《剑指offer》面试题25
题目 输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路 当用前序遍历的方式访问到某一结点时,我们把结点添加到路径上,并累加该结点的值。如果该结点为叶结点并且路径中结点值的和刚好等于输入的整数,则当前的路径符合要求,将它打印出来。如果当前结点不是叶结点,则继续访问它的子结点。当前结点访问结束后,递归...
2019-07-16 09:48:39 107
原创 二叉搜索树的后序遍历序列 ----《剑指offer》面试题24
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。假设输入的数组的任意两个数字都互不相同。思路二叉搜索树后序遍历时,最后一个数字是树的根结点。数组中前面的数字分为两部分:第一部分是左子树结点的值,它们都比根结点的值小;第二部分是右子树结点的值,它们都比根结点大。同理,左子树、右子树又可以看成一个小的二叉搜索树,用递归的方式可以判断,左子树结点的值是否小于根结点,右子...
2019-07-12 09:09:20 94
原创 从上往下打印二叉树 ----《剑指offer》面试题23
题目从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。思路代码#include <iostream>#include <queue>using namespace std;struct BinaryTreeNode{ int value; BinaryTreeNode* p_left; BinaryTree...
2019-07-08 14:54:40 128
原创 栈的压入、弹出序列 ----《剑指offer》面试题22
题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。解题思路 建立一个辅助栈,把输入的第一个序列中的数据依次压入该辅助栈,并按照第二个序列的顺序依次从该栈中弹出数字。...
2019-07-08 00:05:46 104
GDB调试程序-入门级
2019-02-26
vscode怎样包含boost库?
2022-04-12
求正则表达式:匹配不包含"E2564"、"E2462"的字符串
2020-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人