![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
noc_lemontree
踏实走。
展开
-
理解前缀++ 后缀++
在C ++中,前缀++后缀++通过下面2个函数就能很好的理解:这段代码是在网上截下来的//返回一个自身的引用,没有临时对象的代价,性能较高 前缀++ UInt& UInt::operator ++() { *this += 1; return *this; } //返回一个临时对象,增加了一个对象构造和析构的代价,性能较低 后缀++原创 2016-03-07 23:06:46 · 582 阅读 · 0 评论 -
把字符串转换成整数
【题目】将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。【分析】这道题主要是要注意完整性,特殊情况进行考虑。比如:正负,超过边界等等情况。【代码】 int StrToInt(string str) { int value=1; int minus = +1; if(str == "") return 0; if (NULL == str.原创 2016-07-21 01:05:59 · 287 阅读 · 0 评论 -
数组中只出现一次的数字 C++
【题目】一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。【题目分析】注意异或运算的特点:即两个相同的数异或结果为0。也就是说,当一个整型数组里除了1个数字之外,其他的数字都出现了两次。这个时候把所有的数来异或操作,就能得到那一个只出现一次的数。那么扩展一下:一个整型数组里除了两个数字之外,其他的数字都出现了两次。找出这两个只出现一次的数字原创 2016-07-29 16:42:03 · 1928 阅读 · 0 评论 -
平衡二叉树 待续
【题目】输入一棵二叉树,判断该二叉树是否是平衡二叉树。【代码】递归:class Solution {public: int depth(TreeNode *pRoot)//求深度 { int dep=0; if(pRoot==NULL)return dep; int lefts=depth(pRoot->le原创 2016-07-28 14:43:08 · 401 阅读 · 0 评论 -
二叉树的镜像 C++
【题目】操作给定的二叉树,将其变换为源二叉树的镜像。【题目分析】对数的操作,一般涉及到递归和非递归两种思路。递归思路:对于树根,不变,交换左右两个子树,然后在对左右子树作为树根进行递归交换他们的子树。注意处理子树为空的情况。非递归:非递归采用层次遍历的思想。【代码】非递归/*struct TreeNode { int val; struct TreeN原创 2016-07-28 14:00:08 · 747 阅读 · 0 评论 -
不用加减乘除做加法 C++
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。分析:不用四则运算,那就应该是通过位运算来实现。也就是,要通过位运算在模拟加的过程。将“加”的结果分为两部分:不带进位加的结果以及进位结果。当进位的结果为0时,就表示:不带进位加的结果为最终所求值。在细说:不带进位的加的结果可以由异或操作来实现:1+1=0;1+0=1;0+0=0;0+1=1;进原创 2016-07-16 10:36:06 · 1688 阅读 · 0 评论 -
[leetcode]maximum-depth-of-binary-tree C++
题目:Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.分析:此题用递归的方式做非常简单,虽然一次性就通过原创 2016-07-13 21:41:00 · 369 阅读 · 0 评论 -
[leetcode]climbing-stairs 动态规划 C++
题目:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?题目分析:这也是一道简单而典型原创 2016-07-13 16:28:51 · 869 阅读 · 0 评论 -
[leetcode]unique-paths 动态规划 C++
题目:A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to r原创 2016-07-13 15:21:56 · 602 阅读 · 2 评论 -
合并两个排序的链表 C++
【题目】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。【代码】 ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==NULL||pHead2==NULL) return pHead1==NULL?pHead2:pHe原创 2016-07-22 23:43:41 · 421 阅读 · 0 评论 -
二维数组中的查找 C++
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码:class Solution {public: bool Find(vector > array, int target) { int i, j, m, n; m = array.size(); n原创 2016-07-11 16:31:45 · 1935 阅读 · 1 评论 -
表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。题目分析:这道题主要是对所有可能出现的情况进行完整的分析以及解答。比如str是否为空,小数点的位置以及个数,e/E出现的位置原创 2016-08-15 10:56:13 · 309 阅读 · 0 评论