![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C与C++
_yxy_
没有什么解决不了的问题,努力就好!
展开
-
VS C++一些debug[持续更新中。。。]
1、vs2015中,“error LNK2019: 无法解析的外部符号 __imp__”等问题原因是:缺少相应的库。项目属性设置中添加相应的库 的方法为:项目->属性->链接器->输入->附加依赖项 中加入相应的库,用分号(;)与其他的库分开。实际中通过增加ws2_32.lib,解决了该问题。2、 每次编译加载一堆dll符号慢的问题,解决方法:工具->选项-...原创 2018-08-12 17:35:19 · 499 阅读 · 0 评论 -
左旋转字符串和翻转单词序列
左旋转字符串:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!两次翻转,先整体翻转在局部翻转class Solution {public原创 2017-06-10 16:40:47 · 263 阅读 · 0 评论 -
数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。用位运算,先将所有数字异或可以得到只出现一次的两个数字异或的结果resXor,记下resXor右数第一个为1的位置,说明num1和num2在这一位上是不同的,根据这个条件将整个数组分成两组,每组所有数字相与,剩下的就是要求的数字。代码:class Solution {public: v原创 2017-06-10 15:05:30 · 162 阅读 · 0 评论 -
平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { bool res=1; getHeight(pRoot,res); return res; } int getHeight(TreeNo原创 2017-06-10 14:47:24 · 162 阅读 · 0 评论 -
数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。一开始最直接的当然就是O(n)的算法,但是要利用好已经排序数组这个条件,用二分搜索,即可有O(logn)的算法第一种思路:找找k-0.5和k+0.5的插入位置,这样就能找到元素为k的位置范围:class Solution {public: int GetNumberOfK(vector data ,int k) {原创 2017-06-10 12:23:44 · 170 阅读 · 0 评论 -
两个链表的第一个公共结点
输入两个链表,找出它们的第一个公共结点。注意:公共节点指的是它们的尾部相同,而不仅仅是值相等/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {原创 2017-06-10 12:16:16 · 158 阅读 · 0 评论 -
整数中1出现的次数(从1到n整数中1出现的次数)
题目描述:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。思路:这道题看剑指offer上的思路没看懂,百度别人的思路,发现很简单的思路这里给出参考链接原创 2017-06-10 12:11:37 · 236 阅读 · 0 评论 -
最小的K个数
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路一:快速选择,时间效率O(n),但是会改变原来的数组class Solution {public: vector GetLeastNumbers_Solution(vector &input, int k) { vecto原创 2017-06-10 12:02:57 · 188 阅读 · 0 评论 -
表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。先要搞清楚哪些是表示数值,除了列出来的,'1.2e+2','.1'也是数值,'12e',‘12.’ 就不是数值class原创 2017-06-21 20:46:21 · 188 阅读 · 0 评论 -
位运算相关题目
位运算包括5种:与,或,异或,左移,右移题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。容易陷入死循环的写法:class Solution {public: int NumberOf1(int n) { int flag=1; int cnt=0; while(n){原创 2017-04-23 14:26:30 · 575 阅读 · 0 评论 -
正则表达式匹配
题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配要分为几种情况:(状态机)(1)当第二个字符不为‘*’时:匹配就是将字符原创 2017-06-19 19:45:24 · 200 阅读 · 0 评论 -
矩阵中的路径
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?用回溯法:注意对于走过的位置的标原创 2017-06-28 22:16:32 · 250 阅读 · 0 评论 -
LeetCode 236. Lowest Common Ancestor of a Binary Tree
题目链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/#/description题目描述:Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.Accor原创 2017-06-02 18:48:35 · 165 阅读 · 0 评论 -
[华为机试题]合唱队
题目描述计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1Ti+1>......>TK。 你的任务是,已知所有N位同学的身原创 2017-06-18 17:28:37 · 388 阅读 · 0 评论 -
LeetCode 173. Binary Search Tree Iterator
题目链接:https://leetcode.com/problems/binary-search-tree-iterator/#/description题目描述:Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of原创 2017-06-02 16:53:43 · 200 阅读 · 0 评论 -
第一个只出现一次的字符位置和字符流中第一个不重复的字符
在一个字符串(1用哈希表,遍历两次,第一次统计个数,第二次判断第一个只出现一次的代码:class Solution {public: int FirstNotRepeatingChar(string str) { map tab; for(int i=0;i<str.size();++i) tab[str[i]]++原创 2017-06-10 12:14:47 · 291 阅读 · 0 评论 -
删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NU原创 2017-06-10 16:47:50 · 177 阅读 · 0 评论 -
华为机试题[2017.8.23]
题目:给定一个正整数,给出消除重复数字以后最大的整数输入描述:正整数,注意考虑长整数输出描述:消除重复数字以后的最大整数#include#includeusing namespace std;int main() { string s; while (cin >> s) { string res; res = s[0]; for (int i = 1; i原创 2017-08-23 21:17:59 · 2360 阅读 · 1 评论 -
进程与线程(持续更新中。。。)
进程和程序程序:存放在硬盘中的文件,指令集+数据。被组织成:正文段(指令集) + 用户数据段(数据)进程:程序加载到内存中,分配内存空间,存放正文段(指令集) + 用户数据段(栈 + 堆) + 系统数据段(PCB等系统用到的数据结构)进程与程序的主要区别: (1)程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的; (2)程序是静态的观念,进程是原创 2017-08-04 08:21:28 · 282 阅读 · 0 评论 -
[华为机试题]简单错误记录
题目描述开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件原创 2017-07-06 17:20:04 · 387 阅读 · 0 评论 -
[蘑菇街]回文串
题目描述给定一个字符串,问是否能通过添加一个字母将其变为回文串。输入描述:一行一个由小写字母构成的字符串,字符串长度小于等于10。输出描述:输出答案(YES\NO).输入例子:coco输出例子:YES思路一:暴力,超级暴力。。。O(n2),因为题目说了字符串的长度不会超过10,也没想起其他方法,所以直接暴力写了一下。。。#原创 2017-06-26 16:12:50 · 233 阅读 · 0 评论 -
数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。参照剑指offer,用最大堆和最小堆实现class Solution {public: void Insert(int num) { if((max.s原创 2017-06-13 17:26:10 · 198 阅读 · 0 评论 -
[华为机试题]四则运算
题目描述请实现如下接口 /* 功能:四则运算 * 输入: strExpression :字符串格式的算术表达式,如 : "3+2*{1+2*[-4/(8-6)+7]}" * 返回: 算术表达式的计算结果 */ public static int calculate(String st原创 2017-06-12 17:39:22 · 888 阅读 · 0 评论 -
[百度]蘑菇阵
题目描述现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述:第一行N,原创 2017-07-12 18:54:27 · 261 阅读 · 0 评论 -
构建乘积数组
题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。方法一:另外开辟了两个大小为n的空间,存储当前元素左右乘积,空间复杂度比较高class Solution {public: vector multiply(原创 2017-06-11 17:00:34 · 250 阅读 · 0 评论 -
丑数
题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。第一种思路:暴力,计算每个数是不是丑数,是的话计数加一,超时。class Solution {public: int GetUglyNumber_Solution(int inde原创 2017-06-11 15:37:45 · 225 阅读 · 0 评论 -
数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007这道题一开始直接暴力,用插入排序,结果当然是超时了。。。class Solution {public: int InversePairs(vector data) {原创 2017-06-11 13:44:40 · 209 阅读 · 0 评论 -
把字符串转换成整数
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0输入例子:+2147483647 1a33输出例子:2147483647 0这个题目没啥原创 2017-06-10 16:58:31 · 394 阅读 · 0 评论 -
打印二叉树的两个题目
1、按之字形顺序打印二叉树:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。用两个栈/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(原创 2017-06-10 16:54:14 · 161 阅读 · 0 评论 -
二叉树的下一个结点
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。主要是当前结点如果是父节点的右孩子时的处理:需要一直上溯,找到是左孩子的结点/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeL原创 2017-06-10 16:51:20 · 170 阅读 · 0 评论 -
链表中环的入口结点
题目描述:一个链表中包含环,请找出该链表的环的入口结点。思路1:设环中结点数是n,环的入口位置是x(距离起点走多少步),用快慢指针p,q,q移动的速度是p的2倍,当两个指针相遇时p走的步数是y,q走的步数是2y,q比p多走k个环的距离,即:2y=y+kn,则y=kn。p距离环的入口点的距离为y-x,此时,令q指向链表头结点,p,q每次移动一步,再次相遇时,p,q都走了x步,即p距离入口原创 2017-06-06 16:26:28 · 198 阅读 · 0 评论 -
树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7原创 2017-04-27 14:41:28 · 199 阅读 · 0 评论 -
树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)这里关键是用了两个递归,一个用来遍历树A找到与B根节点相等的节点,找到后用另外一个递归,判断A的以那个节点为根的子树是否含有与B的子树相同的结构。代码:/*struct TreeNode { int val; struct TreeNode原创 2017-04-27 11:22:01 · 204 阅读 · 0 评论 -
顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.分析:本题并不会用到高级的数据结构或算法,但是涉及到多个循环和相关条件的判断,要考虑周全,理清思路再写。代码原创 2017-05-02 16:51:44 · 1401 阅读 · 0 评论 -
LeetCode K sum问题总结
烟客旅人 sigmainfy — http://tech-wonderland.net/blog/summary-of-ksum-problems.html前言:做过leetcode的人都知道, 里面有2sum, 3sum(closest), 4sum等问题, 这些也是面试里面经典的问题, 考察是否能够合理利用排序这个性质, 一步一步得到高效的算法. 经过总结, 本人觉转载 2017-03-31 18:25:40 · 330 阅读 · 0 评论 -
Leetcode 227. Basic Calculator II
题目链接:https://leetcode.com/problems/basic-calculator-ii/#/description题目描述:mplement a basic calculator to evaluate a simple expression string.The expression string contains only non-negative原创 2017-03-21 15:55:57 · 269 阅读 · 0 评论 -
C++继承中关于子类构造函数的写法
转载于:http://www.cnblogs.com/shmilxu/p/4849097.htmlC++继承中关于子类构造函数的写法转载于:http://www.cnblogs.com/kaige/p/cplusplus_virtual_inheritance_derived_class_constructor.html构造方法用来初始化类的对象,与父类转载 2017-03-07 20:50:02 · 1547 阅读 · 0 评论 -
马踏棋盘算法(骑士周游问题)
将马随机放在国际象棋的8×8棋盘的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。代码:#include "stdafx.h"#include #include #define row 8#define col 8int cnt = 0;int templater[row] = { - 1, - 2, - 2, - 1, 1, 2,原创 2017-01-31 15:46:11 · 4331 阅读 · 0 评论 -
LeetCode 111. Minimum Depth of Binary Tree
题目链接:https://leetcode.com/problems/minimum-depth-of-binary-tree/?tab=Description题目描述:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest原创 2017-02-18 11:30:51 · 175 阅读 · 0 评论 -
LeetCode 112. Path Sum
题目链接:https://leetcode.com/problems/path-sum/?tab=Description题目描述:Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path原创 2017-02-18 11:26:07 · 165 阅读 · 0 评论