
c++
参合陂都尉
这个作者很懒,什么都没留下…
展开
-
关于智能指针的学习
#include "mainwindow.h"#include <QApplication>#include <iostream>#include <QDebug>#include <QHash>#include <QVector>#include <memory>using namespace std;...原创 2019-11-28 15:23:55 · 94 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
牛客网:题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变class Solution {public: void reOrderArray(vector<int> &array) { if(!array.size()...原创 2019-08-09 17:02:55 · 87 阅读 · 0 评论 -
表示数值的字符串
牛客网题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。方法一:状态迁移表/自动机class Solution {public: char arr[10] = "+-n...原创 2019-08-14 11:20:31 · 230 阅读 · 0 评论 -
螺旋矩阵II
力扣网:给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> M(n,vector<int&g...原创 2019-08-07 16:58:07 · 102 阅读 · 0 评论 -
数组中的逆序对
牛客网题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007class Solution {public: int nixu_num; int InversePairs(vector<int> data...原创 2019-08-10 10:38:21 · 122 阅读 · 0 评论 -
字符流中第一个不重复的字符
牛客网题目描述:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。class Solution{public: //Insert one char from stringstream map<char,in...原创 2019-08-10 12:02:04 · 86 阅读 · 0 评论 -
有效的括号
力扣网题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。class Solution {public: bool isValid(string s) { stack<char>...原创 2019-08-12 15:19:17 · 103 阅读 · 0 评论 -
基本计算器
力扣网题目描述:实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式可以包含左括号(,右括号),加号+,减号-,非负整数和空格。class Solution {public: stack<char> fuhao; stack<int> num; vector<char> pre_fuhao;...原创 2019-08-13 17:45:56 · 188 阅读 · 0 评论 -
动态规划
1.0-1背包问题#define N 6#define W 21knapsack::knapsack(){ int B[N][W] = {0}; int w[N] = {0,2,3,4,5,9}; int v[N] = {0,3,4,5,8,10}; for(int k = 1;k<N;k++){ for(int c = 1;...原创 2019-09-03 14:59:44 · 205 阅读 · 1 评论 -
c++选择题
1.小型机通常采用RISC和unix操作系统。(√)小型机操作系统一般是UNIX,PC服务器操作系统一般是windows。但是题干中RISC不是操作系统,是精简指令集计算机,是计算机中央处理器的一种设计模式,这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高,是CPU的设计模式,对应ARM。RISC专注高性能、高性能功耗比、小体积以及移动设备领域...原创 2019-09-05 23:21:57 · 2333 阅读 · 0 评论 -
c++面试
C++ 基础篇:1.声明与定义的区别。声明不包含定义,定义一定包含声明,定义需要分配内存2.extern 和 static 的区别,什么情况用前者什么情况用后者3.x=x+1,x+=1,x++哪个效率高1.右值地址,右值+1,左值地址,左值赋值2.右值地址,右值+1,右值赋值3.右值地址,右值自增4.const 和#define 的优缺点const进行类型检查5.str...原创 2019-09-08 11:06:52 · 160 阅读 · 0 评论 -
回溯法
1.机器人的运动范围牛客网题目描述:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?cla...原创 2019-09-07 23:39:23 · 138 阅读 · 0 评论 -
把数组排成最小的数
牛客网题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323class Solution {public: string PrintMinNumber(vector<int> numbers) { vector<st...原创 2019-08-09 16:49:29 · 255 阅读 · 1 评论 -
删除排序数组中的重复项
力扣网:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums...原创 2019-08-07 11:08:05 · 144 阅读 · 1 评论 -
3sum解法二
class Solution {public: vector<vector<int> > threeSum(vector<int> &num) { if (num.size() < 3) return vector<vector<int> >(); vect...原创 2019-03-26 21:39:50 · 206 阅读 · 0 评论 -
重复数组
剑指offer在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解法1:每遇到重复值+1,直接调用find可能不太好class Solution {public:...原创 2019-07-08 19:23:40 · 179 阅读 · 0 评论 -
重建二叉树
剑指offer输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val;...原创 2019-07-11 20:32:08 · 94 阅读 · 0 评论 -
平衡二叉树
牛客网题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public: bool IsBalanced_Solution(TreeNode* root) { int left,right; if (root == NULL) { return true; ...原创 2019-08-05 21:27:14 · 248 阅读 · 0 评论 -
二叉树遍历
中序遍历class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> inorder; if (root) { inorder.push_back(root->val)...原创 2019-08-05 21:28:19 · 126 阅读 · 0 评论 -
字母大小写全排列
力扣网题目描述:给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。class Solution {public: vector<string> my_letter; vector<string> letterCasePermutation(string S) { ...原创 2019-08-05 21:28:33 · 330 阅读 · 0 评论 -
数字在排序数组中出现的个数(二分查找)
牛客网:统计一个数字在排序数组中出现的次数class Solution {public: int GetNumberOfK(vector<int> data ,int k) { int cishu = 0; for(auto r : data) { if (r==k) { ...原创 2019-08-08 15:54:58 · 144 阅读 · 0 评论 -
c++基础语法笔记
1.成员访问运算符对于形如point->mem的表达式,根据point的类型不同,其分别等价于(*point).mem; //point是一个内置的指针类型point.operator()->mem; //point是类的一个对象2.运算优先级*(i++)先运算,再执行加操作;*(++i)相反3.类型转换char转intchar s;int...原创 2019-08-02 10:31:22 · 174 阅读 · 0 评论 -
数组中出现次数超过一半的数字
牛客网题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public: int MoreThanHalfNum_Solution(vector<int> number...原创 2019-08-08 16:59:18 · 92 阅读 · 0 评论 -
二叉树深度
牛客网题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), righ...原创 2019-08-02 11:18:16 · 85 阅读 · 0 评论 -
二叉树镜像
牛客网题目描述:操作给定的二叉树,将其变换为源二叉树的镜像/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {publi...原创 2019-08-02 15:01:48 · 113 阅读 · 0 评论 -
排序算法
1.先来最简单的冒泡排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。 每一轮对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。第一轮结束,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤n-1轮,分别倒序排好倒数第二大、倒数第三大……的元素。直到没有任何一对数字需要比较。class Solution {public: vector<int&...原创 2019-08-09 12:11:45 · 113 阅读 · 0 评论 -
3sum解法一
class Solution {public: vector<vector<int> > threeSum(vector<int> &num) { if (num.size() < 3) return vector<vector<int> >(); vect...原创 2019-03-26 21:38:06 · 222 阅读 · 0 评论