
C++
洞玄之
不积跬步,无以至千里
展开
-
c++中内存大小
题目:32位机器上定义如下结构体:struct xx{ long long _x1; char _x2; int _x3; char _x4[2]; static int _x5;};int xx::_x5;1请问sizeof(xx)的大小是()解答:原创 2017-08-10 11:44:42 · 360 阅读 · 0 评论 -
剑23-判断是否为二叉树后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思想:递归class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { int length = sequen...原创 2017-10-28 21:49:49 · 416 阅读 · 0 评论 -
剑22-从上到下打印二叉树结点(按层遍历)
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路: 1、引入一个数据容器即队列deque STL实现了一个很好的deque(两端都可以进出的队列) 2、每次打印一个结点的时候,如果该节点有子节点,则把该子节点放到一个队列的末尾。/*struct TreeNode{int val;struct TreeNode*left;struct TreeNode...原创 2017-10-29 22:47:19 · 257 阅读 · 0 评论 -
大话数据-—线性表之循环/双向链表
线性表分为:顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素。链式存储结构:单链表、静态链表、循环链表、双向链表一、循环链表合并 两个循环链表的尾指针分别是rearA,rearB A链表的头结点为rearA->next B链表的头结点为rearB->next,第一个结点为rearB->next->next 1、保存A链表的头结点 p 2、将本是指向A表头结点的A表的尾指原创 2017-10-31 15:15:27 · 265 阅读 · 0 评论 -
剑19—顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路: 1、二维数组的行列数,row,col 2、特殊测试用例判断 3、每圈对应的左上角坐标(start,start)...原创 2017-10-25 12:45:14 · 394 阅读 · 0 评论 -
剑15—反转链表
16反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 思路: 1、考虑特殊情况,如空链表 2、定义三个指针分别指向当前结点,前一个结点,后一个结点,且当当前结点不为空时,才后一个结点 3、如果后一个结点为空时,即到达尾结点,即当前结点为反转后链表的头结点 4、否则不为空,则将当前结点指向前一个结点,进行链表反转 5、同时,当前结点和后一个结点断...原创 2017-10-24 09:38:06 · 175 阅读 · 0 评论 -
剑20—包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。class Solution {public: stack<int>dataStack, minStack;//数据栈和辅助栈 void push(int val) { dataStack.push(val); if (minStack.s...原创 2017-10-26 10:02:52 · 162 阅读 · 0 评论 -
C++PrimerV5/Ch10/ex10.1-
ex10.1:头文件algorithm中定义了一个名为count的函数,类似find,接受一对迭代器和一个值作为参数,count返回给定值在序列中出现的次数,读取int序列存入vector中,打印次数 ex10.2:读取string序列存入list中。#include<iostream>#include<algorithm>#include<vector>#include<list>usi原创 2017-11-03 15:46:24 · 218 阅读 · 0 评论 -
剑25-复杂链表的复制
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路: 1、定义指针currNode,复制原始链表的任意结点N并创建新结点N’, //并把新节点连接到N的后面 2、设置复制出来的节点node的指针...原创 2017-11-04 21:36:56 · 236 阅读 · 0 评论 -
剑21-判断序列是否为该栈的弹出顺序
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution {public: bool IsPopOr...原创 2017-10-27 11:10:07 · 239 阅读 · 0 评论 -
剑6—旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路:二分查找方法 1、定义int index1,indexMid,index2 2、比较rotate...原创 2017-10-19 09:22:44 · 177 阅读 · 0 评论 -
大端存储/小端存储
【理解】不管是大端法还是小端法存储,计算机在内存中存放数据的顺序都是从低地址到高地址,所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。若首先取高字节的数据存放在低地址,则是大端法; 【便于记忆:一个高字节的数据宁愿屈身存储在 低地址中,可见它的 ”大气端庄“——>大端原创 2017-08-15 17:53:41 · 611 阅读 · 0 评论 -
C++PrimerV5/Ch09/ex9.26-9.36
ex9.26: 定义int ia[] = {0,1,1,2,3,5,8,13,21,55,89};将数组ia 拷贝到一个vector 和一个list中,使用单迭代器版本的erase函数从list删除奇数元素,从vector删除偶数元素。知识点考查:删除元素c.pop_front(); //删除首元素;vector/string 不支持此成员函数c.pop_back(); //删除尾元素;原创 2017-09-22 15:47:31 · 315 阅读 · 0 评论 -
assign的使用
assign:原字符串清空,赋予新的值作替换,返回类型为 string类型的引用。一、常用重载如下:a. string& assign ( const string& str );将str替换原字串的内容举例:string testassign = "Hello World";testassign.assign("go home");cout//打印结果为 go hom原创 2017-09-15 22:20:37 · 7362 阅读 · 0 评论 -
LeeCode- Baseball Game
题目描述: You’re now a baseball game point recorder. Given a list of strings, each string can be one of the 4 following types:Integer (one round’s score): Directly represents the number of points you get原创 2017-09-24 19:51:35 · 239 阅读 · 0 评论 -
将int型转换成二进制 && vector创建的二维数组
一、将int型转换成二进制//使用容器转换二进制 int BinaryVector(int n){ int temp= n; vector<int>ivec; while (temp != 0) { ivec.push_back(temp % 2); temp = temp>>1; } ...原创 2017-10-08 11:41:54 · 1424 阅读 · 0 评论 -
Binary Number with Alternating Bits
Given a positive integer, check whether it has alternating bits or not. Example 1: Input: 5 Output: True Explanation:原创 2017-10-08 12:10:00 · 199 阅读 · 0 评论 -
C++PrimerV5/Ch09/ex9.18-9.22
练习9.18:编写程序,从标准输入中读取string序列,存入一个deque中。编写一个循环,用迭代器打印deque中的元素。 #include<iostream>#include<deque>#include<string>using namespace std;int main(){ string str; deque<string>dst; while (ci原创 2017-09-20 21:35:18 · 415 阅读 · 1 评论 -
C++PrimerV5/Ch09/ex9.40-9.52
ex9.40:程序中读入了256/512/1000/1048 个词,在resize之后容器的capacity可能是多少?知识点考查: (1)vector对象是如何增长的: 为了支持快速随机访问,vector对象将元素连续存储; 假定容器中元素连续存储,且容器大小可变,当向vector和String中添加元素,如果没有空间容纳新元素,为了保证元素连续存储,容器必须分配新的内存空间原创 2017-09-23 12:34:29 · 620 阅读 · 0 评论 -
lee720-Longest Word in Dictionary My SubmissionsBack to Contest
Longest Word in Dictionary My SubmissionsBack to ContestGiven a list of strings words representing an English Dictionary, find the longest word in words that can be built one character at a time by ot原创 2017-11-05 17:27:25 · 270 阅读 · 0 评论