c++
走在不归路上
这个作者很懒,什么都没留下…
展开
-
c++中内存的四个区
在c++中,内存被划分为四个区。代码区、原创 2014-11-14 17:10:46 · 2036 阅读 · 0 评论 -
c++ + opencv + linux下加载文件(图片或级联分类器)路径的问题
之前在linux下做opencv中的函数的实验,经常会遇到无法打开函数中需要使用的图片,或者是无法加载opencv自带的级联分类器,运行的时候就会报出如下错误,其中,无法加载图片会爆如下得到错误:OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/cug507zy/open原创 2016-03-21 16:13:52 · 1206 阅读 · 0 评论 -
Longest Substring Without Repeating Characters(leetcode)
12345678910111213141516171819202122leetcode学习8位二进制,总共有256个字符,不仅仅是我们常见的26个字母。intlengthOfLon原创 2016-03-21 16:14:45 · 271 阅读 · 0 评论 -
剑指offer——调整数组顺序使奇数位于偶数前面
要求:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。类似冒泡排序,前偶后奇就交换。class Solution {public: void reOrderArray(vector &array) { for (in原创 2016-02-24 20:15:49 · 232 阅读 · 0 评论 -
C++指针加整数、两个指针相减的问题
考虑如下问题:1 char a[20];2 int *ptr = (int *)a;3 ptr++;第3句ptr++实际为ptr右移一个int空间(即4个字节)的距离,此时ptr指向a[4]。若第3句改为int *p = ptr + 2;则p指向a[8]这里说明当指针加整数时,指针向后偏移的转载 2016-03-11 17:52:06 · 657 阅读 · 0 评论 -
BST的基本操作
// BST.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;typedef struct TreeNode{ int val; TreeNode *leftChild; TreeNode *rightChild; Tre原创 2016-03-25 21:00:44 · 656 阅读 · 0 评论 -
单链表逆序2
前一篇文章也是单链表逆序,将逆序的原理解释的比较清楚(转载他人的)本文写的是牛客网中剑指offer中的单链表逆序的问题。题目中给出的链表节点结构体、类及函数类型如下:/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :*原创 2016-01-25 20:53:22 · 272 阅读 · 0 评论 -
Trie树详解及其应用
一、知识简介 最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value 映射,只不过 Trie 的 key 只能是字符串。 Trie 的强大之处就在于它的时间复杂度。它的插入和转载 2016-04-18 11:16:31 · 293 阅读 · 0 评论 -
KMP字符串匹配,next数组的求解
对KMP算法只有了解,但一直对next数组的求解弄不明白,今天通过看书以及网上搜索相关资料,终于把这部分弄明白了。1.KMP算法的原理。-本部分内容转自:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html举例来说,有一个字符串"BBC ABCDAB ABCDAB转载 2016-04-10 10:07:16 · 2394 阅读 · 1 评论 -
旋转数组的最小数字(剑指offer面试题)
此题的结题思路在剑指offer书上分析的也较为透彻,此处的分析过程来自牛客网对本题的讨论中比较好以一个网友的分析过程旋转之后的数组实际上可以划分成两个有序的子数组:前面子数组的大小都大于后面子数组中的元素注意到实际上最小的元素就是两个子数组的分界线。本题目给出的数组一定程度上是排序的,因此我们试着用二分查找法寻找这个最小的元素。思路:(1)我们用两个指针left,r原创 2016-02-23 10:39:58 · 935 阅读 · 0 评论 -
蘑菇街笔试题1
题目一 搬圆桌现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。输入描述:一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)输出描述:输出一个整数,表示答案输入例子:原创 2016-03-31 16:33:23 · 577 阅读 · 0 评论 -
vs2010打开时遇到的问题
vs2010打开时出现的当外接程序正在opened上接收时导致访问冲突,是否要终止该原创 2014-11-17 12:53:48 · 1702 阅读 · 0 评论 -
c++异常
文章转载至异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返回NU转载 2014-11-17 10:33:15 · 353 阅读 · 0 评论 -
单链表逆序
第二个题目是很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1)初始状态 初始状态,prev是N转载 2016-01-25 20:46:15 · 290 阅读 · 0 评论 -
栈的压入、弹出序列(剑指offer面试题)
问题描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。剑指offer书上分析总结的规律:如果下一个弹出的数字刚好的栈顶数字,那么直接弹出,如果下一个弹出的数字不在栈顶,我们把压原创 2016-03-01 15:29:45 · 989 阅读 · 0 评论 -
二分查找(返回目标元素的第一个位置、最后一个位置)
二分查找是针对有序数组的查找算法。一般意义上的二分查找,往往返回给我们的是目标元素在排序数组中出现的一个随机的位置,但是在很多时候,我们却是需要目标元素的第一个和最后一个位置,才有意义。本文分别针对最基础的二分查找、返回目标元素的第一个位置、返回目标元素的最后一个位置的进行的代码实现。class BinarySearch {public: int getPos(vector A,原创 2016-03-16 11:23:39 · 8452 阅读 · 4 评论 -
首个重复字符,首个非重复字符(哈希表)
牛客网题目:于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。测试样例:"qywyer23tdd",11返回:y类似的,如果题目要求返回首个非重复字符,都是利用哈希表来解决,建立字符-字符出现的频率键值对。由于原创 2016-03-16 16:21:27 · 909 阅读 · 0 评论 -
最长回文字串 (LEETCODE: Longest Palindromic Substring)
根据回文的特征,从字符串中某个位置(或某两个位置)为中心,向两边开始分析。直至找到最长的回文串。 string longestPalindrome(string s){//中心扩展法 int maxlen; int prev; int next; string result; maxlen = 0; //回文串为奇数时 for原创 2016-03-29 16:32:52 · 592 阅读 · 0 评论 -
蘑菇街笔试题5
题目描述:给定一个字符串,问是否能够通过添加一个字母,使其变为回文。输入描述:一行由小写字母构成的字符串,字符串长度小于等于10输出描述:YES/NO例子:coco输出:YES分析:从微信公众号上看到的别人用Java的解题思路,即如果添加一个字符能变为回文串,那么删除对应位置上的字符,该字符串仍为回文。用一个循环,每次删掉一个字符,然后判断是否为回文原创 2016-03-31 16:17:44 · 464 阅读 · 0 评论 -
链表的回文结构
题目要求:对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true思路:判断一个链表是不是回文数,要求O(n)时间 1. 使用2个指针,快慢指针各一个,每次快原创 2016-03-11 20:55:10 · 1654 阅读 · 1 评论