- 博客(23)
- 收藏
- 关注
原创 剑指20:表示数值的字符串
输入一个字符串,判断是否是数值表示形式。A . B e C其中AC都可以是有符号数 B是无符号数 且前后存在ABC是否必须存在的问题mark const char ** 的传参class Solution {public: //有符号数识别处理 bool scanInt(const char** str){ //传入为二级指针,便于对一级指针中的指针进行修改 ...
2018-03-30 15:49:18 179
原创 剑指第19题:正则表达式匹配 ——递归
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。Tips: *前者0次或多次 贪婪匹配 .任意字符一次 .*...
2018-03-28 21:31:51 181
原创 剑指第18题:删除链表中的结点 、删除链表中重复的结点
(1)给出头结点、待删除结点 和结构,必须在O(1)时间内完成删除struct ListNode{ int m_nValue; ListNode* m_pValue;}void DeleteNode(ListNode** pListHead, ListNode* tobedel){ if(*pListHead == NULL) return; if(to...
2018-03-27 10:09:36 143
原创 剑指第16题:数值的整数次方 ——递归 以2的幂次进行求方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。class Solution {public: int equal(double num1,double num2){ //自行写一个判定误差的 double之间相等的函数 类似库函数fabs(double a)求绝对值; if(num1-num...
2018-03-22 19:01:50 241
原创 剑指第15题:二进制1的个数——位运算
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。方法1: 最佳方法 通过数学发现 (n-1)&n这个运算只会使数中1的个数减少一个。class Solution {public: int NumberOf1(int n) { if(n == 0) return 0; int count = 0; ...
2018-03-21 21:07:57 131
原创 剑指第14题:剪绳子
动态规划:从大到小分析,从小到大求解,时间复杂度n方 空间复杂度n//==================================================================// 面试题14:剪绳子// 题目:给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m≥1)。// 每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*...
2018-03-20 20:18:58 240
转载 VIM 快捷键
转载自:https://www.cnblogs.com/markleaf/p/7808817.html一、移动光标h,j,k,l 上,下,左,右ctrl-e 移动页面ctrl-f 上翻一页ctrl-b 下翻一页ctrl-u 上翻半页ctrl-d 下翻半页w 跳到下一个字首,按标点或单词分割W 跳到下一个字首,长跳,如end-of-line被认为是一个字e 跳到下一个字尾E 跳到下一个字尾,长跳b ...
2018-03-16 09:43:15 120
原创 剑指第13题:机器人的运动范围------回溯法
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?class Solution {public: ...
2018-03-15 20:45:59 123
原创 剑指第12题:矩阵中的路径——回溯法
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,...
2018-03-14 17:11:17 192
原创 剑指第11题:旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。三种情况 (1)旋转0个元素 (2){0,1,1,1,1}------{1,1...
2018-03-13 20:26:06 132
原创 剑指:年龄排序
/****************** *对一个年龄数组进行排序,从小到大,可用不超过O(n)的常量辅助空间,时间效率O(n) * ******************/#include<stdio.h>#include<string.h>#include<iostream>#include<stdexcept>#include<...
2018-03-13 16:04:39 187
转载 gdb 调试程序
要调试生成的可执行程序,必须在生成的时候加入-g选项,生成可以调试的代码例如:gcc -o test a.c b.c -g这样gcc就会在链接的时候加入一些用于调试的符号 在生成可以调试的可执行程序后,使用gdb命令进入调试模式 1 root@ubuntu:/home/leo/test/project/classes# gdb test 2 GNU gdb (Ubuntu 7.10-1ubun...
2018-03-13 15:16:34 170
转载 剑指offer——斐波那契数列相关问题总结
转载自:http://blog.csdn.net/xingyanxiao/article/details/47055973题目一:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列定义如下: 分析:递归,效率很低的解法[cpp] view plain copy long l...
2018-03-12 18:45:30 96
原创 剑指第七题:重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。第一种,by me,用迭代器返回范围来表示基于原序列的范围typedef vector<int>::iterator it;class Solutio...
2018-03-09 15:14:17 130
转载 error: no matching function for call to 'std::exception:exception(const char[16])
转载自http://blog.csdn.net/Felaim/article/details/78630984将这一段里的这句话error: no matching function for call to 'std::exception:exception(const char[16])'改成std::logic_error ex("XXXXX");throw std::exception(e...
2018-03-08 18:46:13 1919
转载 uintXX_t类型
转载自:https://www.cnblogs.com/kungfupanda/p/2790394.html整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍...
2018-03-07 20:50:20 1182
原创 剑指第五题:替换空格
/******************** 5请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 自己写的 times可作为循环结束判断*********************/class Solution {public: void replaceSpace(cha...
2018-03-07 20:19:48 98
原创 剑指第六题:从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。方法(1)用栈 stack stack.push(参数); 返回值stack.top(); stack.pop(); (2)递归 (3)vector总结 ...
2018-03-07 20:14:55 133
转载 malloc/free 和new delete
转载自:https://www.cnblogs.com/limera/p/new_malloc.html1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于mal...
2018-03-07 10:14:45 157
原创 C单链表时遇到的关于指针的指针 和 指针 传参之间的问题
在看这部分代码时,很疑惑list_add时为什么传 **head而不是*head进去后来改成*head进行打印后明白这个问题和最初的传参void swap(int a,int b)与void swap(int *a,int *b)的意思一致list_add中需要保证将List_head始终指向头结点,而如果用*head传参进入,是将List_head本身的值(作为指针的值)传入=将List_hea...
2018-03-06 20:22:45 1007
原创 剑指第四题:二维数组中的查找
/*在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。*//***************** 二维数组中的查找 递增 按行遍历******************/class Solution {public: bool Find(int ...
2018-03-05 15:31:49 131
原创 剑指第三题:数组重复数字 不修改数组
#include <iostream>#include <cstdlib>#include <stdio.h>//数组长度n+1,内容为1到n的数字,有重复//二分法 数组中重复数字 不能修改数组内容 时间复杂度O(nlogn) 空间复杂度O(1)int count(int* numbers,int length,int start,int end...
2018-03-03 19:44:37 174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人