自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 广联达2018现场笔试题目

/* 编程1 :求解f(n) = 1-2+3-4+5-6+……+n; */#if 0int main(){ int n; int sign = 1; //符号位 int sum = 0; cin>>n; for(int i = 1;i<=n;i++) { sum+=i*sign; sign*=-1; //每次都

2017-09-10 16:14:28 8453 3

原创 求一个序列的最大连续长度

题目要求: 给定一个递增序列,求该序列的连续最大长度。 解题思路:依次遍历,当序列数字连续时,增加其长度,当不连续时,重新初始化长度,最终返回该序列的最大连续长度。#include<iostream>using namespace std;int getMaxSize(int* array,int length){ int count = 1; int

2017-09-09 17:04:47 1250

原创 Kolakoski序列及应用拓展

/* Kolakoski序列是个自生成的无限序列。 例如,当给定的整数组为[1,2]时,Kolakoski序列是这样的: [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1……]; 对于其他给定的整数组,同样可以用类似的方法构造Kolakoski序列,例如给定整数组[2,3]时, [2,2,3,3,2,2,2,3,3,3,2

2017-09-09 16:59:56 438

原创 设计模式--单例模式(Singleton)

........................................单例模式..............................................单例模式:即唯一实例的意思,也就是保证一个类只有唯一的一个实例。单例模式的实现方式:定义一个该类的静态变量,再定义一个获取该静态变量的静态方法。注意:在单例模式中,将类的构造函数定义为privat

2017-09-01 20:36:02 282

原创 设计模式前序

............................................................设计模式.................................................1.设计模式出现的reason:目前软件开发存在的问题是:随着用户的需求不断发生变化,对软件开发工作人员的要求也就越来越高。要想尽量的满足用户需求的变化,需要依靠程序

2017-09-01 17:35:36 244

原创 关于线程

........................................................................线程.................................................................线程:计算机中独立运行的最小单位,在运行时占用很少的系统资源。Linux操作系统支持多线程操作,在一个进程内生成许

2017-09-01 15:17:26 232

原创 关于进程

................................................................进程控制.................................................................一.操作系统: 操作系统的主要任务是借助进程来管理计算机的软、硬件资源。1.基本特征有:  *并发性:两个或者多个

2017-09-01 09:49:59 253

原创 哈希表(Hash table)

//...................哈希表........................1.什么是哈希表?哈希表(Hash table,又叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。即,它通过吧关键码值映射到表中的某一个位置来存储元素,然后根据关键码用同样的方式直接访问,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。2.哈希

2017-08-31 10:24:35 670

原创 跳水运动员问题

//360笔试编程题/*题目描述:2.一年一度的跳水比赛又开始了,全国各地的运动员都纷纷报名参加了比赛。在比赛之前,举办方让运动员抽签决定了比赛的出场顺序,运动员会根据这个顺序依次出场,完成自己的动作,然后裁判评分。为了做好充分的准备和调整赛前心态,运动员希望了解其他运动员的实力,希望知道在自己出场之前,有多少位运动员上赛季的得分是高于自己的。现在你是一位数据分析家,你可以

2017-08-29 20:21:41 660

原创 卖粉笔

/360笔试编程----卖粉笔/*1.小明一共有n根彩色粉笔,m根白色粉笔,现在可以用a根彩色粉笔和b根白色粉笔组成一盒卖x元,或者c根白色粉笔组成一盒卖y元,或者d根彩色粉笔组成一盒卖z元,小明最多可以用这些粉笔卖多少元?不一定要把所有粉笔卖完,小明只希望利益最大化。*///解题思路:贪心算法:采取循环将所有可能的情况都走一遍,最后取最优#includeusin

2017-08-29 20:11:09 869

原创 geohash编码

//腾讯校招笔试题/*geohash 编码: geohash 常用于将二维的经纬度转换为字符串,分为两步:第一步是经纬度的二进制编码,第二部是 base32 转码。此题考察唯独的二进制编码:算法对维度 [-90,90] 通过二分法进行无限逼近(取决于所需精度,本题精度为 6 )。注意,本题进行二分法逼近过程中只采用向下取整来进行二分,针对二分中间值属于右区间。算法举例如下:(1)

2017-08-29 19:54:52 785

原创 Kolakoski序列及应用扩展

/*题目要求:Kolakoski序列是个自生成的无限序列。例如,当给定的整数组为[1,2]时,Kolakoski序列是这样的:[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1……];对于其他给定的整数组,同样可以用类似的方法构造Kolakoski序列,例如给定整数组[2,3]时,[2,2,3,3,2,2,2,3

2017-08-29 11:54:43 528

原创 数字组合问题(N个正整数连接起来最大)

/*数字组合问题:    设有N个正整数,现在需要你设计一个程序,使他们连接在一起成为最大的数字,例3个整数 12,456,342 很明显是45634212为最大,4个整数 342,45,7,98显然为98745342最大程序要求:输入整数N 接下来一行输入N个数字,最后一行输出最大的那个数字!*//*解题思路:     看到题目首先想到如何使两个数连接在一起最大,

2017-08-25 22:42:56 6309 2

原创 网易校招笔试-序列逆序问题

题目四:**小易有一个长度为n的整数序列,a_1,……a_n.,然后考虑在一个空序列b上进行n次以下操作。 1:将a_i放入b序列的末尾 2:逆置b序列。 小易需要你计算输出操作n次之后的b序列。** */ /* 解题思路: 1.如果只输入一个数1,那么输出为1。 2.如果输入两个数,1 2,逆置后为2 1. 3.如果输入

2017-08-24 11:13:29 418

原创 全排列算法(递归实现) 组合算法(递归,位运算实现)

//……………………………..全排列…………………….//判断要交换的两个数是否相等,如果相等就不进行交换#include<iostream>using namespace std;bool IsSwap(int list[],int begin,int end){ for(int i = begin;i<end;i++) if(list[i] == list[end])

2017-08-23 17:27:36 1757

原创 连续子数组的最大和

/* 面试题31:连续子数组的最大和 :输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组,求所有子数组的和的最大值。要求时间复杂度为O(n). */ /* 解题思路:1.例如一个数组{5,2,-10,7,2,-1},先初始化和为0,从第一个数字开始累加,此时的和就是第一个数字5, 2.此时再继续加,当加到第二个数字和为7,判断这个数

2017-08-22 17:21:25 230

原创 最小的k个数

if 0/* 面试题30:最小的k个数 :输入n个整数,找出其中最小的k个数,例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 解题思路: 1.在n个整数中找最小的k个数,我们可以创建一个大小为k的数据容器来存储最小的k个数字。 2.每次从输入的n个整数中读取一个数,此时如果容器中已有的数字小于k个,则直接将 读入的数字放入容器,

2017-08-22 16:19:58 262

原创 正则表达式浅析(一)

//...............................................正则表达式.............................................正则表达式:是强大,便捷,高效的文本处理工具。   组成:完整的正则表达式由两种字符构成,特殊字符(元字符)和普通文本字符。   完整的正则表达式由小的构建模块单元组成。正则表达

2017-08-21 20:02:32 257

原创 数组中出现次数超过一半的数字

/*面试题29:数组中出现次数超过一半的数字 :数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 */ /* 解题思路:1.首先需要判断输入的数组是否有效。 2.数组中有一个数字出现的次数超过数组长度的一半,说明它出现的次数比其他所有数字出现的次数的和还要多, 那么要找的数字肯定是最后一次把次数设为1时对应的数字。

2017-08-20 09:53:46 734

原创 从上往下打印二叉树

/* 面试题23:从上往下打印二叉树 从上往下打印出二叉树的每一个节点,同一层的结点按照从左到右的顺序打印。 如图:从上往下依次打印数据为:8 3 10 1 6 14 4 7 13. /* 解题思路:1.从上往下打印,即按层依次打印,首先打印根结点,接下来打印它的两个子结点。 2.借助容器队列(先入先出),如果

2017-08-18 11:30:19 196

原创 将基类的析构函数申明为虚函数

在C++中,析构函数的作用是:当一个对象被销毁时,调用析构函数对类对象和对象成员进行释放内存和清除工作。为什么要将基类的析构函数声明为虚函数: 请看下面的代码示例:#include<iostream>using namespace std;class Base{public: Base() { cout<<"Construct Base"<<endl;

2017-08-17 15:57:54 779

原创 删除部分数字问题

//搜狐2017笔试题 /* 笔试题:给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。 */ /* 解题思路:例如数字51643,需要删除3位数而使剩下的数字组合最大,此时需要从头开始两个数字比较大小, 如果当前数字比其下一位小,则删除当前数字,此时变为5643,继续从头开始遍历,5比6小,则删除5,变为643

2017-08-16 14:55:26 3455 2

原创 32位操作系统与64位操作系统的区别

//..........................................................................在Win7下:32位系统和64位系统的区别有:1.要求配置不同,64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能,32位操作系统则可以安装在32位(32位CPU)或64

2017-08-14 20:24:05 874

原创 顺时针打印矩阵

/* 面试题20:顺时针打印矩阵 */void PrintNumber(int number){ printf("%d ",number);}//一步一步打印矩阵void PrintMatixInCircle(int** numbers,int columns,int rows,int start){ int endX = columns-1-start; in

2017-08-14 16:26:28 272

原创 二叉树的镜像

/* 面试题19:二叉树的镜像 输入一个二叉树,输出它的镜像。 */ 解题思路: 先前序遍历树的每一个节点,如果遍历到的结点有子节点,就交换它的两个子节点。当交换完所有非叶子结点的左右子节点之后,就得到了树的镜像。struct BinaryTreeNode{ int m_nValue; BinaryTreeNode*

2017-08-14 15:12:46 135

原创 树的子结构

/* 面试题18:树的子结构 :输入两棵二叉树A和B,判断B是不是A的子结构, */ /* 解题思路: **对树的遍历采取递归的方式 1.先在树A中查找和B的根节点的值一样的结点R 2.判断树A中以R为根节点的子树是不是包含和树B一样的结构 如果结点R的值和树B的根节点不相同,则以R为根结点的子树和树B肯定不具有相同的节点, 如果它们的值相同,则递

2017-08-14 14:45:31 199

原创 合并两个排序的链表

/* 面试题17:合并两个排序的链表 输入两个递增排序额的链表,合并这两个链表并使新链表中的结点任然是按照递增排序的。 */ /* 解题思路: 1.先判断链表为空的情况,如果链表1为空,则合并后的链表就是链表2,如果链表2为空,则合并后的链表就是链表2 2.当两个链表都不为空时,根据链表头结点比较大小,如果链表1的头结点的值小于链表2的头结点的值,则链表1的头结

2017-08-14 10:31:50 246

原创 将一个链表进行反转

/* 面试题16:反转链表:定义一个函数,输入链表的头结点,反转该链表并输出反转后链表的头结点。 */struct ListNode{ int m_nvalue; ListNode* m_pNext;};//创建链表ListNode* CreateListNode(int value){ ListNode *pNode = new ListNode();

2017-08-13 12:27:48 352

原创 求链表中倒数第k个结点

/* 面试题15:输入一个链表,输出该链表中倒数第k个结点,本题从1开始计数,即链表的尾结点就是倒数第1个结点, 例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6.这个链表的倒数第3个结点是值为4的结点。 */struct ListNode{ int m_nvalue; ListNode* m_pNext;};

2017-08-13 11:44:38 209

原创 删除链表结点

面试题13: 题目:给定单项链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。//链表结点struct ListNode{ int m_nvalue; ListNode* m_pNext;};//创建链表ListNode* CreateListNode(int value){ ListNode *pNode = new ListNode();

2017-08-13 11:04:17 250

原创 输入一个正整数n,输出一个最小正整数m,使得m的各位乘积等于n

/* 1.:编写一个函数func,输入一个正整数n,返回一个最小的正整数m,使得m的各位乘积等于n,例如输入100.输出455,输入36,输出49 */#if 0int func(int n){ int num=0; int s; int m[10]={0}; int p=0;//数组m的下标 int sum=n; int i=2;//1~81

2017-08-13 09:14:09 7729 2

原创 两个字符串是否为变形词

/* 1、判断两个字符串是否为变形词 【题目】给定两个字符串s1,s2, 如果s1和s2中出现的字符种类和字符次数一样多,则s1和s2互为变形词,实现函数判断两个字符串是否为变形次。 【例如】s1=”123”,s2=”321” ,return true; s1=”123”,s2=”2113”, return false; */#include<iostream>#incl

2017-08-11 11:54:20 212

原创 字符串中数字子串的求和

if 0/* 2、字符串中数字子串的求和 【题目】给定一个字符串str,求其中全部数字串所代表的数组之和 【要求】a>忽略小数点字符,如”A.1.3”其中包含两个数字1和3 b>如果紧贴数字子串的左侧出现字符”-”,当连续出现的数量为奇数时,则数字视为负,连续出现的数量为偶数时,则视为正,如,”A-1BC- -12”,其中包含数字为-1和12 【例如】str=”A1CD2E33” 结果为3

2017-08-11 11:52:37 827

原创 拷贝和赋值的区别

//对于拷贝和赋值很容易混淆的一个问题例如:string str1 = "hello world";  string str2 = str1;  不要以为有“=”就是赋值操作,其实,这两条语句等价于:  string str1 ("hello world"); //调用的是构造函数    string str2 (str1); //调用的是拷贝构造函数    如果s

2017-08-10 11:48:32 783

原创 判断一个数是不是2^N次方

/*...........判断一个数是不是2^N次方,不可使用循环*/#if 0int main(){ int number; printf("请输入一个数,判断这个数是不是2^N次方:\n"); scanf("%d",&number); /*将number与number-1做与运算,如果为0,则该数是2^N次方,例如8&7 = 0,8是2^3 */

2017-08-10 09:09:23 404

原创 linux下的IPC通信机制

linux下进程间通信的几种主要手段简介:管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信

2017-08-07 16:52:27 557

原创 split函数与strtok函数的实现

#if 0//..................split()函数/*vector<string>split(const string &s,const string &seperator);*/ /*输入一个字符串,一个分隔符字符串(可包含多个分隔符,返回一个字符串向量*/vector<string>split(const string &s,const string &seperator

2017-08-02 08:50:16 336

原创 文件操作函数

//..............文件操作.....#if 0#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdio.h>#include<string.h>//linux系统调用实现对文件的操作//.........read() write()in

2017-08-02 08:43:26 303

原创 AVL树的插入删除操作

//.......................avl.h#pragma once#include<iostream>#include<stack>using namespace std;//................................动态平衡树-----AVL树template<class Type>class AVL;//结点类template<class T

2017-07-23 11:32:39 398

原创 算法(递归)--汉诺塔

//: 一个直接或间接地调用自身的算法称为递归算法,一个使用函数自身给出定义的函数称为递归函数。//双递归函数:当一个函数及它的一个变量是由函数自身定义时,称这个函数式双递归函数。//.1.汉诺塔...#if 0void hanoi(int n,char a,char b,char c){void move(char x,char y);if(n==1)move(a,c);else

2017-05-21 17:48:15 431

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除