C++
唯我视你为青山
java
展开
-
C++ 基础面试题
C/C++4.1 判断struct的字节数struct AA{int a;char b;};struct student{char name[10];AA a;short b;};int main(){AA aa;char name[10];int a;short b;cout<<"AA:" <<siz...原创 2019-10-19 14:40:21 · 441 阅读 · 0 评论 -
C++:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。提交代码:class Solution {public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<TreeNode> v_in; vector<int> v_out; if (root==NULL...原创 2019-05-19 16:51:56 · 1133 阅读 · 0 评论 -
C++:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)提交代码:class Solution {public: bool I...原创 2019-05-19 16:14:13 · 852 阅读 · 0 评论 -
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。提交代码:class Solution {public: stack<int> s1; stack<int> min_stack; void push(int value) { s1.push(value); if (min_stack...原创 2019-05-15 13:47:35 · 418 阅读 · 0 评论 -
操作给定的二叉树,将其变换为源二叉树的镜像。
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 ...原创 2019-05-15 13:21:41 · 657 阅读 · 0 评论 -
C++解法:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)提交代码:class Solution {public: bool is_same(TreeNode* pRoot1, TreeNode* pRoot2) { if (pRoot2==NULL) { return true; } if (pRoot1==NULL...原创 2019-05-10 12:57:18 · 813 阅读 · 1 评论 -
C++:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。提交代码:class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if (pHead2==NULL) { return pHead1; } if (pHea...原创 2019-05-10 10:49:40 · 444 阅读 · 0 评论 -
C++解法;输入一个链表,反转链表后,输出新链表的表头。
题目描述输入一个链表,反转链表后,输出新链表的表头。提交代码:class Solution {public: ListNode* ReverseList(ListNode* pHead) { if (pHead==NULL) { return NULL; } ListNode* p_head = pHead; ListNode* p_fast =...原创 2019-05-09 23:09:10 · 901 阅读 · 0 评论 -
C++解法:剑指offer,输入一个链表,输出该链表中倒数第k个结点。
题目描述输入一个链表,输出该链表中倒数第k个结点。提交代码:class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if (pListHead==NULL|| k<0) #第一步判断接收数据是否有误 { return NULL; } ...原创 2019-05-09 22:38:15 · 738 阅读 · 0 评论 -
c++解法:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。提交答案:class Solution {public: void reOrderArray(vector<int> &array) { int len_array = array....原创 2019-05-08 23:23:45 · 831 阅读 · 0 评论 -
C++解法:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?提交代码:class Solution {public: int rectCover(int number) { int sum = 0; if (number == 0) { return 0; } if (number ...原创 2019-05-08 22:04:53 · 407 阅读 · 0 评论 -
C++解法: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。推理过程:提交代码:class Solution {public: int jumpFloorII(int number) { int sum = 0; if (number == 0) { return 0; } i...原创 2019-05-08 21:59:40 · 2645 阅读 · 0 评论 -
C++:高效解法一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。提交代码:class Solution {public: int jumpFloor(int n) { long int f0 = 1; long int f1 = 2; if (n<1) { return 0; }...原创 2019-05-08 21:52:18 · 976 阅读 · 0 评论 -
C++,高效解法:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39方法一:很慢class Solution {public: int Fibonacci(int n) { if (n == 0) return 0; else if (n == 1) return 1; else if (n...原创 2019-05-08 21:40:49 · 3176 阅读 · 0 评论 -
C++把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。提交代码:时间复杂度没nclass Solution {public: int minNumb...原创 2019-05-08 21:25:53 · 1367 阅读 · 3 评论 -
C++ 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。提交代码:class Solution{public: //stack1 作为中间转运容器 void push(int node) { while (!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); /...原创 2019-05-08 21:10:08 · 1284 阅读 · 0 评论 -
C++输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{ 1,2,4,7,3,5,6,8 }和中序遍历序列{ 4,7,2,1,5,3,8,6 },则重建二叉树并返回。class Solution {public: TreeNode* reConstructBinaryTree(vector...原创 2019-05-08 20:48:35 · 1162 阅读 · 1 评论 -
vecter容器删除第一个元素
如何删除vecter容器中第一个元素:#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v; //初始化 v for (int i = 0; i < 10; i++) { v.push_back(i); }...原创 2019-05-08 20:16:53 · 50202 阅读 · 0 评论 -
C++ STL 容器使用
目录1:顺序容器的介绍2:关联容器的介绍3:几种容器的比较c++中有两种类型的容器:顺序容器和关联容器顺序容器主要有:vector、list、deque等。vector表示一段连续的内存地址,基于数组的实现list表示非连续的内存,基于链表实现deque与vector类似,但是对于首元素提供删除和插入的双向支持关联容器主要有:map和set。map是key-...原创 2019-05-06 09:29:42 · 214 阅读 · 0 评论 -
1.剑指offer-查找第一个只出现一次的字母 C++
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。用stl map解法,O(n)速度但是需要额外空间#include<iostrea...原创 2019-04-27 13:28:55 · 294 阅读 · 0 评论 -
c++ 多态
1、重载和多态的关系:多态分为静态多态和动态多态:静态多态 包含 重载和泛型编程动态多态 ---》虚函数2、重载案例://// Created by luzhongshan on 10/18/19.//#include "stdlib.h"#include "iostream"using namespace std;int Add(int left, int...原创 2019-10-18 17:12:44 · 133 阅读 · 0 评论 -
快速排序:C++
给定初始数组:上面的图,结合下面的代码,简单不赘述了。#include<stdio.h>void quickSort(int a[], int left, int right){ int i = left; int j = right; int temp = a[left]; if (left >= right) return; whil...原创 2019-06-05 21:32:04 · 163 阅读 · 0 评论 -
C++:堆排序
目录什么是堆排序:堆排序步骤:步骤一 、构造初始堆。将给定无序序列构造成一个大顶堆步骤二 、将堆顶元素与末尾元素进行交换,使末尾元素最大。最后结果:再简单总结下堆排序的基本思路:代码: 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。什么是堆排序:...原创 2019-06-05 20:43:42 · 3235 阅读 · 1 评论 -
C++:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。
题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)提交代码:class Solution {public: vector<vector<int>> v_final; vector<int&g...原创 2019-05-21 15:16:56 · 2029 阅读 · 4 评论