![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
YYlxid
这个作者很懒,什么都没留下…
展开
-
318. Maximum Product of Word Lengths
Given a string array words, find themaximum value of length(word[i]) * length(word[j]) wherethe two words do not share common letters. You may assume that each word willcontain only lower case let原创 2016-02-22 09:16:07 · 457 阅读 · 0 评论 -
【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
左旋转字符串//题目描述//汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!class Solution {public: string原创 2016-01-15 17:14:57 · 649 阅读 · 0 评论 -
【剑指offer】6.3知识迁移能力——面试题39:二叉树的深度
//题目描述//输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N原创 2016-01-15 17:11:22 · 395 阅读 · 0 评论 -
【剑指offer】6.3知识迁移能力——面试题38:数字在排序数组中出现的次数
暴力搜索//题目描述//统计一个数字在排序数组中出现的次数。class Solution {public: int GetNumberOfK(vector data ,int k) { int n=data.size(); if(n==0)return 0; int cnt=0; for(int i=0;i<n;i++){ if(data[i原创 2016-01-15 17:03:28 · 340 阅读 · 0 评论 -
【剑指offer】2.3.4树——面试题6:重建二叉树
树的性质:除了根结点之外每个结点只有一个父结点,根结点没有父结点;除了叶结点之外所有结点都有一个或多个子节点,叶结点没有子结点。二叉树即每个结点最多只能有两个子结点,其重要操作是遍历,包括前序、中序、后序、层次遍历。可通过宽度优先遍历和深度优先遍历实现。。。二叉搜索树,左子结点总小于等于根结点,右子结点总大于等于根结点。查找一个结点的时间复杂度平均为o(nlogn)堆也是一原创 2015-12-25 09:44:34 · 455 阅读 · 0 评论 -
【剑指offer】2.3.3链表——面试题5:从尾到头打印链表
链表是由指针把若干个结点连接成链状结构,是一种动态的数据结构。在创建链表时,无须知道链表的长度,当插入一个结点时,只需为新节点分配内存,然后调整指针的指向。由于链表是按需分配内存的,故其空间效率比较高。面试题5:从尾到头打印链表原创 2015-12-25 09:43:05 · 434 阅读 · 0 评论 -
【剑指offer】2.3.2 字符串——面试题4:替换空格
字符串是由若干字符组成的序列。c/c++中每个字符串都以字符'\0'作为结尾,因此每个字符串中都有一个额外字符的开销。为了节省内存,c/c++把常量字符串放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,他们实际会指向相同的内存地址,但用常量内存初始化数组,则不会指向同一个内存地址。在c#中封装的字符串类型System.String,其内容是不能改变的,一旦试图改变原创 2015-12-25 09:41:23 · 428 阅读 · 0 评论 -
【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
树状数组的思想,不过会受到N的影响,扩展离散+树状数组//题目描述//在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。#include#includeusing namespace std;const int N=100005;class Solution {public: int Inve原创 2016-01-15 15:43:36 · 337 阅读 · 0 评论 -
【剑指offer】5.3时间效率与空间效率的平衡——面试题35:第一个只出现一次的字符
hash表//题目描述//在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始#include#includeusing namespace std;class Solution {public: int FirstNotRepeatingChar(string str) {原创 2016-01-15 15:42:24 · 386 阅读 · 0 评论 -
【剑指offer】2.3.1 数组——面试题3:二维数组中的查找
数组概念数组占据一块连续的内存并按照顺序存储数据。创建数组时,需要首先指定数组的容量大小,然后根据大小分配内存。因此数组的空间效率不高。内存连续的特点使得可根据下标在o(1)时间读/写任何元素,故时间效率很高。可用它实现简单的哈希表。为了解决数组空间效率不高的问题,设计了多种动态数组,例如c++中的vector。为了避免浪费,先为数组开辟较小的空间,然后向数组中添加数组。当数据的数原创 2015-12-25 09:31:05 · 565 阅读 · 0 评论 -
【剑指offer】2.3.5栈和队列——面试题7:用两个栈实现队列
栈的应用:如操作系统会给每个线程创建一个栈用来存储函数调用时各个函数的参数、返回地址及临时变量等。栈的特点 后进先出,是一个不考虑排序的数据结构。队列 先进先出。 面试题7:用两个栈实现队列原创 2015-12-25 09:45:50 · 341 阅读 · 0 评论 -
【剑指offer】5.2时间效率——面试题29:数组中出现次数超过一半的数字
对时间空间影响的几个方面:1、编程习惯对代码的时间效率有很大影响,例如,c/c++程序员要养成采用引用(或指针)传递复杂类型参数的习惯。如果采用值传递的方式,从形参到实参会产生一次复制操作,造成时间和空间的浪费。2、使用循环和递归实现的时间效率可能会不一样。3、所使用的数据结构和算法也会带来影响原创 2016-01-13 09:59:09 · 522 阅读 · 0 评论 -
【剑指offer】4.2画图让抽象问题形象化——面试题19:二叉树的镜像
//题目描述////操作给定的二叉树,将其变换为源二叉树的镜像。 #include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(原创 2016-01-04 21:24:37 · 487 阅读 · 0 评论 -
【剑指offer】6.4抽象建模能力——面试题44:扑克牌的顺子
//题目描述//LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为原创 2016-01-15 17:16:03 · 391 阅读 · 0 评论 -
【剑指offer】4.3举例让抽象问题具体化——面试题24:二叉搜索树的后序遍历序列
原创 2016-01-11 20:42:10 · 314 阅读 · 0 评论 -
【剑指offer】5.2时间效率——面试题33:把数组排成最小的数
原创 2016-01-15 15:40:00 · 303 阅读 · 0 评论 -
【剑指offer】4.4分解让复杂问题简单化——面试题26:复杂链表的复制
使用map的思想//题目描述////输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。 #include#include#includeusing namespace std;struct RandomListNode { int label; struct RandomListNode *next, *ra原创 2016-01-11 21:06:57 · 409 阅读 · 0 评论 -
【剑指offer】5.2时间效率——面试题32:从1到n整数中1出现的次数
原创 2016-01-13 10:01:46 · 339 阅读 · 0 评论 -
【剑指offer】4.3举例让抽象问题具体化——面试题25:二叉树中和为某一值的路径
//题目描述////输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 #include#include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode原创 2016-01-11 20:43:01 · 462 阅读 · 0 评论 -
【剑指offer】6.3知识迁移能力——面试题41:和为s的两个数字VS和为s的连续正数序列
和为S的连续正数序列//题目描述////小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! //原创 2016-01-15 17:13:45 · 777 阅读 · 0 评论 -
【剑指offer】5.3时间效率与空间效率的平衡——面试题34:丑数
//题目描述//把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。#includeusing namespace std;class Solution {public: int GetUglyNumber_Solution(int index) {原创 2016-01-15 15:41:10 · 486 阅读 · 0 评论 -
【剑指offer】4.3举例让抽象问题具体化——面试题23:从上往下打印二叉树
//题目描述////从上往下打印出二叉树的每个节点,同层节点从左至右打印。 #include#include#include#includeusing namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val原创 2016-01-11 20:41:22 · 440 阅读 · 0 评论 -
【剑指offer】4.3举例让抽象问题具体化——面试题22:栈的压入、弹出序列
//题目描述////输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。#include#include#includeusing namespace std;class S原创 2016-01-11 20:39:40 · 444 阅读 · 0 评论 -
【剑指offer】4.3举例让抽象问题具体化——面试题21:包含min函数的栈
//题目描述////定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。#include#includeusing namespace std;// stk 保存依次进入栈的数据// minstk 保存依次进入栈时当前的最小值的栈class Solution {public: void push(int value) { stk.push(value原创 2016-01-11 20:38:29 · 466 阅读 · 0 评论 -
【剑指offer】4.4分解让复杂问题简单化——面试题28:字符串的排列
原创 2016-01-11 21:08:36 · 352 阅读 · 0 评论 -
【剑指offer】4.4分解让复杂问题简单化——面试题27:二叉搜索树与双向链表
原创 2016-01-11 21:07:48 · 373 阅读 · 0 评论 -
【剑指offer】3.4代码的鲁棒性——面试题18:树的子结构
面试题18:树的子结构原创 2016-01-04 21:23:33 · 412 阅读 · 0 评论 -
【剑指offer】6.5发散思维能力——面试题48:不能被继承的类
原创 2016-01-21 21:42:17 · 418 阅读 · 0 评论 -
【剑指offer】6.5发散思维能力——面试题47:不用加减乘除做加法
原创 2016-01-21 21:41:25 · 392 阅读 · 0 评论 -
【剑指offer】6.3知识迁移能力——面试题40:数组中只出现一次的数字
原创 2016-01-15 17:12:39 · 355 阅读 · 0 评论 -
【剑指offer】5.3时间效率与空间效率的平衡——面试题37:两个链表的第一个公共结点
原创 2016-01-15 15:44:51 · 290 阅读 · 0 评论 -
UVA - 10245 The Closest Pair Problem
属于Divide-and-Conquer,算法课老师有讲到,就找个题目试试,思想就是不断的二分。。。考虑合并时的处理。。不解释//============================================================================// Name : uva10245.cpp// Author : // Versi原创 2014-10-18 22:41:12 · 654 阅读 · 0 评论 -
pat 1020. Tree Traversals (25)
改了 几次 终于ac了注意post递归时的下标利用后序和前序来建树 由于每个数字都不同,因此我选择用数组来代表该树gettree(int lp,int rp,int li ,int ri)返回当前子树的父亲节点编号 lp,rp表示当前子树后序序列 li,ri 表示当前子树前序序列 注意我返回的父亲节点 下标为rp-1 所以 下标范围是序列再加一 这个地方很混 早知道开始直接原创 2013-09-14 20:55:48 · 1505 阅读 · 0 评论 -
pat 1014. Waiting in Line (30)
看了别人的代码了解了用queue vector模拟 排队用now该队最后一个顾客服务后的时间,每次判断一个新顾客进入队列,根据队头客户离开时间最早者该顾客进队queue front 队头元素 push 入队 pop 出队 #include#include#include#include#include#include原创 2013-09-14 10:50:59 · 1431 阅读 · 0 评论 -
pat 1017. Queueing at Bank (25)
queue模拟题注意题目所求得是平均等待时间还有 如果顾客在8点之前到达,需等到8点才能得到服务顾客如果在17点之后到达,银行不为其提供服务,但一旦到达时间在17点之前,即使结束时间在17点之后 ,银行也要为其服务#include#include#include#include#include#includeusing namespace std;#define S原创 2013-09-14 11:41:06 · 1439 阅读 · 1 评论 -
pat 1063. Set Similarity (25)
用vector二维存储 sort来对每个集合进行排序 nc 求两个集合交nt 求两个集合并#include#include#include#include#includeusing namespace std;vector > vec;int main(){ int n,m,k,i,x,j,y,nc,nt; scanf("%d",&n); for(i=0;i<原创 2013-09-01 23:33:59 · 1645 阅读 · 0 评论 -
C/C++取整函数ceil(),floor() fix round
fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;floor朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;ceil朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;roun转载 2013-09-08 11:58:26 · 1796 阅读 · 0 评论 -
poj 2503 Babelfish
用到C++中的map收获 mapss[char a[]]=char b[] ,虽然写着是string string 可是可以直接用char数组赋值string转换为char 数组方法 string s; char s1[50]; strcpy(s1,s.c_str());char数组转换为string s=s1; 或是 string原创 2013-08-24 18:27:35 · 877 阅读 · 0 评论 -
POJ 1080 Human Gene Functions
动态规划问题最长公共子串的变形 主要注意初始化 #includeusing namespace std;#define N 105int v[N][N],dp[N][N];char s1[N],s2[N];int max(int a,int b){ return a>b?a:b;}void init(){ v['A']['A']=5; v['C']['C']=原创 2013-08-22 15:26:10 · 801 阅读 · 0 评论 -
Grading 2011浙大机试
模拟题。。。。。主要c++中浮点型abs在cmath头文件中,其他abs在cstdlib中。。。。控制小数点位数 #include cout#include#include#include#includeusing namespace std;/*Each case occupies a line containing six positive integers:原创 2013-03-18 23:34:57 · 823 阅读 · 0 评论