03 2016 档案

算法之大整数乘法
摘要:大数的表示方法有很多种,最易懂的而且最跟手工计算方式最接近的方式是通过字符数组来保存大数,数组的每个元素保存大数的一个十进制数字,这种方式操作比较简单,但是这种方式需要较多的额外运算,所以效率低下。另一种方式是采用链表作为存储结构,这种方式可以适应不同长度的大数,但是这种方式的存储效率很低,对本... 阅读全文

posted @ 2016-03-31 21:28 海南一哥 阅读(2124) 评论(0) 推荐(0) 编辑

java异常体系结构详解
摘要:前几天在参加网易和360公司的在线考试的时候,都出了一道关于java中异常类的多项选择题。这几天翻看了相关书籍和网上一些资料,结合自己的理解与思考,将自己的一些收获记录如下: 先来看看java中异常的体系结构图解: 首先说明一点,java中的Exception类的子类不仅仅只是像上图所示只包... 阅读全文

posted @ 2016-03-31 11:41 海南一哥 阅读(17226) 评论(1) 推荐(2) 编辑

TCP协议三次握手与四次挥手详解
摘要:在计算机网络的学习中TCPi协议与Http协议是我们必须掌握的内容,其中Tcp协议属于传输层,而Http协议属于应用层,本博客主要讲解Tcp协议中的三次握手与四次挥手,关于Http协议感兴趣的可以参看我的博客:HTTP协议详解 一.三次握手: 第一次握手:建立连接时,客户端发送syn包(syn=... 阅读全文

posted @ 2016-03-30 20:21 海南一哥 阅读(200) 评论(0) 推荐(0) 编辑

Android中JNI编程详解
摘要:前几天在参加腾讯模拟考的时候,腾讯出了一道关于JNI的题,具体如下: JNI本身是一个非常复杂的知识,但是其实对于腾讯的这道题而言,如果你懂JNI,那么你可能会觉得这道题非常简单,就相当于C语言中的hello world级难度,但是事实上这道题一点都不简单,它涉及到JNI函数的调用的一些细节... 阅读全文

posted @ 2016-03-30 11:13 海南一哥 阅读(376) 评论(0) 推荐(0) 编辑

javaRMI详解
摘要:前几天在阿里内推一面的时候,面试官问到了一个关于java中RMI(Remote Method Invocation)的问题,当时感觉自己回答的还比较好,他比较满意,但那是因为他问的比较浅,所以自己看了一些关于java方面的书籍及网上相关资料,根据自己的理解,谈谈java中的RMI。 java中的... 阅读全文

posted @ 2016-03-28 11:16 海南一哥 阅读(1058) 评论(0) 推荐(0) 编辑

JavaI/O体系详解
摘要:Java中IO操作主要是指使用Java进行输入,输出操作,Java中所有的IO操作类都存放在Java.io包中,在使用时需要导入此包。 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File,InputStream,OutputStream,Reader,Writer,分别用... 阅读全文

posted @ 2016-03-27 19:36 海南一哥 阅读(265) 评论(0) 推荐(0) 编辑

【java虚拟机系列】java中类与对象的加载顺序
摘要:首先了解一下Java虚拟机初始化的原理。 JVM通过加装、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。类型的生命周期如下图所示: 装载和连接必须在初始化之前就要完成。 类初始化阶段,主要是为类变量赋予正确的初始值。这里的“正确”初始值指的是程序员希望这个类变... 阅读全文

posted @ 2016-03-27 11:50 海南一哥 阅读(170) 评论(0) 推荐(0) 编辑

Java内存泄露的理解与解决
摘要:本博客将详细讲解java中的GC机制,引用机制和在此基础上对java中的内存泄漏的理解与解决。 Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而... 阅读全文

posted @ 2016-03-27 11:27 海南一哥 阅读(177) 评论(0) 推荐(0) 编辑

JVM的内存区域模型
摘要:首先要明白一个概念,就是JVM的内存区域划分与java的内存区域模型是两个不同的概念,前者指的是在java中jvm会将一个程序划分为哪些块来存储对应的数据,后者是一个更宏观上的j概念,指的是java线程与主内存之间的一种关系模型,后者主要解决java中的线程间通信与同步。 Java程序是交由... 阅读全文

posted @ 2016-03-27 11:04 海南一哥 阅读(143) 评论(0) 推荐(0) 编辑

JAVA类加载机制
摘要:Java类加载机制 类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行。研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性和适应性。 在java.lang包里有个ClassLoade... 阅读全文

posted @ 2016-03-27 10:11 海南一哥 阅读(134) 评论(0) 推荐(0) 编辑

java集合框架
摘要:首先来看看java集合框架的结构图 从java集合框架的结构图,我们可以看到java集合框架包含两个大的部分:Collection与Map 一Collention接口: Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(E... 阅读全文

posted @ 2016-03-26 19:26 海南一哥 阅读(129) 评论(0) 推荐(0) 编辑

Http协议详解
摘要:今天早上阿里内推一面的时候,面试官让我讲讲TCP协议与Http协议,感觉自己TCP协议答得比较好,而Http协议感觉回答的不好,特此看了一下书及网上的一些资料,将相关内容整理如下: 一 HTTP协议 基于HTTP协议的client与server请求包含4个过程: 1.建立TCP套接字连接;(HT... 阅读全文

posted @ 2016-03-26 17:07 海南一哥 阅读(291) 评论(0) 推荐(0) 编辑

【数据结构栈应用系列】括号匹配
摘要:括号匹配算法在各种编程的IDE工具中都会用到,用来检测关于括号匹配的语法错误,括号匹配实际上不复杂,主要就是利用栈这个数据结构,扫描输入的字符串,若遇到左括号则直接入栈,若遇到右括号则弹出栈顶括号,看是否与当前括号类型相同(如同为小括号(),或同为[],注意括号应该是在英文输入法的情况下输入的)... 阅读全文

posted @ 2016-03-26 16:59 海南一哥 阅读(579) 评论(0) 推荐(0) 编辑

【二叉树系列】二叉树课程大作业
摘要:本博客将以代码的形式详细讲解二叉树的所有算法,包括创建二叉树,二叉树的三种遍历方式,二叉树的各种属性算法,如:求高度,求叶子节点数,求节点数,以及二叉树最常见的应用哈夫曼树,代码如下: # include# include# include# include# define N 1# defi... 阅读全文

posted @ 2016-03-26 16:21 海南一哥 阅读(241) 评论(0) 推荐(0) 编辑

【数据结构排序算法系列】数据结构八大排序算法
摘要:排序算法在计算机应用中随处可见,如Windows操作系统的文件管理中会自动对用户创建的文件按照一定的规则排序(这个规则用户可以自定义,默认按照文件名排序)因此熟练掌握各种排序算法是非常重要的,本博客将对数据结构中常见的八大排序算法进行详细的讲解。写在前面的话:首先要明白在学习同类型的排序算法时,一... 阅读全文

posted @ 2016-03-25 22:36 海南一哥 阅读(278) 评论(0) 推荐(0) 编辑

【设计模式】java设计模式总述及观察者模式
摘要:今天在准备腾讯的面试时想起来要复习一下设计模式,而刚好前几天在参加网易的在线考试的时候,也出了一道关于设计模式的选择题,主要是考察观察者模式,虽然那道题自己做对了,但觉得还是应该好好总结一下设计模式的内容。 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象... 阅读全文

posted @ 2016-03-24 11:21 海南一哥 阅读(196) 评论(0) 推荐(0) 编辑

StringBuffer与StringBuilder详解
摘要:刚刚在参加网易实习生在线考试的时候,出了一道选择题谈到了StringBuilder这个类的一些选项,虽然那道题自己做对了,但是也提醒了我应该好好了解一些StringBuffer与StringBuilder。 先来看看这两个类的类结构图: 从类的结构图,我们可以看到: 1)StringBuffe... 阅读全文

posted @ 2016-03-22 21:42 海南一哥 阅读(234) 评论(0) 推荐(0) 编辑

Activity与Fragment的生命周期详解
摘要:在安卓中Activity与Fragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图。其中Activity是通过setContenView()显示视图,而Fragment是通过在onCreateView()中将布局xml文件解析为一个View然后返回该Vi... 阅读全文

posted @ 2016-03-21 18:44 海南一哥 阅读(439) 评论(0) 推荐(0) 编辑

安卓中的事件分发机制之View控件
摘要:前言:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:Vi... 阅读全文

posted @ 2016-03-21 10:26 海南一哥 阅读(186) 评论(0) 推荐(0) 编辑

安卓ListView的性能优化
摘要:在安卓APP中LIstView这个控件可以说基本上是个APP就会用到,但是关于ListView除了需要了解其最基本的用法外,作为一个要做出高性能APP的程序员还需了解一些关于LIstView控件性能优化的基本知识,下面我通过代码一步一步优化的过程来让大家了解LIstView性能优化的相关知识。 ... 阅读全文

posted @ 2016-03-20 15:07 海南一哥 阅读(176) 评论(0) 推荐(0) 编辑

安卓图片缓存技术
摘要:概述:随着手机硬件水平的提高及摩尔效应带来的成本的降低,用户手机上的图片的分辨率越来越高,而对于移动终端而言内存存在一定的限制的,如果程序占用过高的内存,也会抛出OOM异常,降低了APP的用户体验感。另外自己做的APP应该尽可能的减少安装包的体积。本博客主要讲述通过压缩图片来减少安装包体积和通过... 阅读全文

posted @ 2016-03-20 11:19 海南一哥 阅读(272) 评论(0) 推荐(0) 编辑

计算机网络常识
摘要:1. OSI , TCP/IP ,五层协议的体系结构 OSI分层(7层) :物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层) :网络接口层、网际层、运输层、应用层。 五层协议(5层) :物理层、数据链路层、网络层、运输层、应用层。 每一... 阅读全文

posted @ 2016-03-19 10:15 海南一哥 阅读(218) 评论(0) 推荐(0) 编辑

数据库三种范式详解
摘要:.范式说明 1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能同时有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体... 阅读全文

posted @ 2016-03-18 21:37 海南一哥 阅读(275) 评论(0) 推荐(0) 编辑

将一个数组划分为和差值最小的子数组
摘要:要求:将数组中的数划分为两组,使得两个子数组的和的差值最小,数组中的数的取值范围为0using namespace std;const int M = 100;int w[M];int currentSum[M*M];bool state[M][M];int main(){ int n; w... 阅读全文

posted @ 2016-03-18 17:21 海南一哥 阅读(1793) 评论(0) 推荐(0) 编辑

删除主串中模式串出现的字符
摘要:要求:输入一个主串X和模式串Y,要求删除主串X中在模式串Y中出现的所有字符。如:主串X:welcome to tencent. 模式串Y:aeio。则输出结果为:wlcm t tncnt. 思路:最直接的思路就是用两层for循环,外层for循环扫描主串X,内层for循环用来扫面当前主串X中的字... 阅读全文

posted @ 2016-03-17 20:05 海南一哥 阅读(214) 评论(0) 推荐(0) 编辑

字符串的排列
摘要:要求:输入一个字符串,打印出该字符串中的字符的所有排列。如:输入字符串abc,则打印出abc,acb,bac,bca,cab,cba. 思路:我们可以把一个字符串看成是两部分组成:第一部分为它的第一个字符,第二部分为余下的全部字符。求整个字符串的全排列我们可以看作是:首先求所有可能出现在第一个... 阅读全文

posted @ 2016-03-17 17:10 海南一哥 阅读(159) 评论(0) 推荐(0) 编辑

字符串的组合
摘要:要求:输入一个字符串,输出该字符串的所有组合。如:若字符串为:abc,则应输出:(空集),a、b、c、ab、ac、bc、abc. 思路:考虑到数学中的排列组合知识,我们知道所谓组合即是在字符串中选取某些字符组合在一起,而在二进制中我们可以用0代表未选取某字符,1代表选取了某字符,这样自然可以想... 阅读全文

posted @ 2016-03-17 16:32 海南一哥 阅读(247) 评论(0) 推荐(0) 编辑

打印二叉树和为某一值的路径
摘要:要求:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的 节点形成一条路径。二叉树的节点定义如下: struct BTNode{ int data; BTNode *leftChild; BTNode *rightChild;}; 思... 阅读全文

posted @ 2016-03-16 20:39 海南一哥 阅读(345) 评论(0) 推荐(0) 编辑

顺时针打印数组
摘要:要求:输入一个矩阵,按照从外向里以顺时针的顺序打印出每一个数字。如:如果输入的矩阵为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则输出结果为: 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.... 阅读全文

posted @ 2016-03-16 18:35 海南一哥 阅读(168) 评论(0) 推荐(0) 编辑

算术表达式
摘要:题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 输出... 阅读全文

posted @ 2016-03-15 21:58 海南一哥 阅读(218) 评论(0) 推荐(0) 编辑

堆内存与栈内存详解
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收... 阅读全文

posted @ 2016-03-15 21:23 海南一哥 阅读(209) 评论(0) 推荐(0) 编辑

【腾讯校招在线考试附加题】将一个10进制数转换为四位定长的36进制数
摘要:要求: 思路:首先很容易知道当n的值35时,我们我们举几个简单的例子来分析一下:如n=36,则最终结果为0010,我们知道将一个10进制数转换为k进制数采用的是除k取余,即将该数n对k取余所得结果放在最低位,然后将n不断除以k然后取余放在次低位直至商为0为止。如:36%36=0,所以... 阅读全文

posted @ 2016-03-14 21:12 海南一哥 阅读(157) 评论(0) 推荐(0) 编辑

反转链表
摘要:要求:定义一个函数,将一个链表反转。链表节点定义如下: struct ListNode{ int data; ListNode *m_pNext;}; 思路:所谓反转即将链表中某个节点的原本指向后一个节点的指针域指向前一个节点,如果用pCurrent表示当前处理节点,pPrev表示当前处理节点的... 阅读全文

posted @ 2016-03-13 21:48 海南一哥 阅读(134) 评论(0) 推荐(0) 编辑

记录github出错及解决方案
摘要:刚刚在github上更新自己项目的一些内容时出现了一些错误,几经折腾及在网上查找资料终于解决。具体记录如下: 主要就是就是在push时报错,错误信息如下: 根据报错信息原本以为是要重新pull一下,但是pull后重新push出现如下错误: 几经折腾,仍然没解决,后来在一位美女的博客上找到... 阅读全文

posted @ 2016-03-13 15:30 海南一哥 阅读(126) 评论(0) 推荐(0) 编辑

【美团校招在线考试笔试题】钱币面值组合
摘要:要求:假设我们有8种不同的钱币面值{1,2,5,10,20,50,100,200},用这些钱币组合成一个给定的数值n,如:n=200.那么一种可能的组合方式为:200=3*1+1*2+1*5+2*20+1*50+1*100.求总共存在多少种组合方式? 注:这是本人参加美团校招在线考试的... 阅读全文

posted @ 2016-03-13 10:01 海南一哥 阅读(380) 评论(0) 推荐(0) 编辑

找出一个整型数组中只出现了一次的数字
摘要:要求:一个整型数组中除了两个数字外(记为X,Y),其余数字都出现了两次,请写程序找出这两个只出现了一次的数字,要求:时间复杂度为O(n),空间复杂度为O(1)。 思路:假设数组中只有一个数字出现了一次,则很容易想到将数组中全部元素进行异或运算的结果即为只出现了一次的元素,所以... 阅读全文

posted @ 2016-03-12 21:27 海南一哥 阅读(375) 评论(0) 推荐(0) 编辑

用动态规划解决最长公共子序列
摘要:要求:最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。而最长公共子串(要求连续)和最长公共子序列是不同的 ... 阅读全文

posted @ 2016-03-12 16:37 海南一哥 阅读(149) 评论(0) 推荐(0) 编辑

【数据结构队列的应用】用队列打印杨辉三角
摘要:数学中的杨辉三角大家都不陌生,那怎样用程序的方式求n行的杨辉三角呢?方法很多,队列就是其中的一种。下面给出基于队列实现的杨辉三角。 # include# define M 100typedef struct { int a[M]; int front,rear;}sq;void init(sq ... 阅读全文

posted @ 2016-03-12 11:00 海南一哥 阅读(889) 评论(0) 推荐(0) 编辑

约瑟夫环
摘要:要求:约瑟夫环的一种描述为:序号为1,2,...,n的n个人按顺时针方向围坐一圈,每个人持有一个密码(正整数),开始时任选一个数作为报数上限m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数,报的m的人出列,将他的密码作为新的m值,从他开始在顺时针方向的下一个人开始重新从1报数,如... 阅读全文

posted @ 2016-03-12 10:09 海南一哥 阅读(203) 评论(0) 推荐(0) 编辑

数据结构排序算法之堆排序
摘要:关于堆排序的相关知识非常复杂,不懂得可以参考任意一本数据结构教程,本博客只对堆排序框架及代码进行讲解。堆排序分三个大的步骤:建初堆,堆调整,堆排序(其中最核心的是堆调整)1建初堆:从数组中的最后一个非叶子节点开始,从下而上倒推(重复调用堆调整函数)2堆调整:堆调整的前提是已建好了一个堆,但是因为输... 阅读全文

posted @ 2016-03-11 16:45 海南一哥 阅读(295) 评论(0) 推荐(0) 编辑

整数划分
摘要:整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 0),只有一种划分即{1}; (2) 当m=1时,不论n的值为多少,只有一种划分即n个1,{1,1,1,...,1}; (3) 当n=m时,根... 阅读全文

posted @ 2016-03-11 16:23 海南一哥 阅读(339) 评论(0) 推荐(0) 编辑

二叉树的递归与非递归
摘要:要求:给定一个二叉树序列,要求以递归与非递归的形式先序输出。 递归的本质就是系统自动用系统工作栈来将参数入栈与出栈,所以递归化非递归就是程序员自己来控制参数的入栈与出栈,可用循环加自定义栈来控制。 代码如下: #include#includeusing namespace std;typedef... 阅读全文

posted @ 2016-03-11 16:06 海南一哥 阅读(163) 评论(0) 推荐(0) 编辑

螺旋数组
摘要:要求:螺旋数组是指将给定的存储连续自然数的二维数组中的数字从最外层开始以顺时针形式输出 如:二维数组为 {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}} 则输出为: {{1,2,3,4}, {12,13,14,5}, {11... 阅读全文

posted @ 2016-03-11 15:57 海南一哥 阅读(183) 评论(0) 推荐(0) 编辑

【图的DFS】图的DFS非递归算法
摘要:在DFS的递归算法中,DFS框架如下: 1访问起点v0 2依次以v0的未访问的连接点为起点,DFS搜索图,直至图中所有与v0路径相通的顶点都被访问。 3若该图为非连通图,则图中一定还存在未被访问的顶点,选取该顶点为起点,重复上述DFS过程,直至图中全部顶点均被访问过为止。 而在非递归的DFS框架... 阅读全文

posted @ 2016-03-11 15:41 海南一哥 阅读(2538) 评论(0) 推荐(0) 编辑

【图的最短路径】迪杰斯特拉算法求图的最短路径
摘要:要求:求带权有向图中某一结点到其他结点的最短路径。 用迪杰斯特拉算法求解,迪杰斯特拉算法书上的描述如下: 对于图G=(V,{E}),将图中的顶点归为两组: 第一组S:已求出的最短路径的终点集合(开始为{v0}) 第二组:V-S尚未求出的最短路径的顶点的集合(开始为V-{v0}的全部顶点) 该算法... 阅读全文

posted @ 2016-03-11 15:01 海南一哥 阅读(340) 评论(0) 推荐(0) 编辑

求解n皇后
摘要:要求:在国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法 思路:很直观的想法就是在棋盘上一个一个皇后的摆,如果冲突,则摆放在另一个位置,直至此次可以把n各皇后摆好而不产生冲突,则说明此种方法为一个解。然后将最后一个放置的皇后换个位置摆放... 阅读全文

posted @ 2016-03-11 14:31 海南一哥 阅读(210) 评论(0) 推荐(0) 编辑

求某一字符串的最长重复子串
摘要:要求:给定一个字符串,求该字符串的最长重复子串,最长重复子串是指在一个主串中,重复子串中最长的那一个,如:abcdefadef 则答案为:def。 预备知识:要解决此题,要用到后缀数组(用指针数组来表示) 思路:先用后缀数组存储主串的每个子串的后缀,然后对后缀数组中的元素进行排序。最后通过扫描相... 阅读全文

posted @ 2016-03-11 14:24 海南一哥 阅读(516) 评论(0) 推荐(0) 编辑

字符串的n位左旋
摘要:要求:将主串的某一段(n位)翻转到主串的最后,如:abcdef以2位翻转则结果为:cdefab。要求时间复杂度为O(n),空间复杂度为O(1) 思路一:可以重新定义一个与原串相同大小的字符数组result[len],用来存放最终结果,先将原串中的后len-n位复制到result[len]数组的前... 阅读全文

posted @ 2016-03-10 21:59 海南一哥 阅读(257) 评论(0) 推荐(0) 编辑

字符串的包含
摘要:要求:给定一个主串X和子串Y判断主串是否包含子串,包含是指子串中的所用字符均在主串中出现,所谓出现不要求连续,如:主串X:abcdef 子串为:Y:cde,Z:ade,M:adx,则答案为true,true false,要求空间复杂度为O(1) 注意字符串的包含与字符串的查找的不同,具体可以参... 阅读全文

posted @ 2016-03-10 16:13 海南一哥 阅读(507) 评论(0) 推荐(0) 编辑

字符串的查找
摘要:要求:字符串查找即在主串X中查找是否包含子串Y,与字符串包含不同的是,字符串的查找必须是连续的,即Y中的子串必须在X中连续的出现才算。 如:string main_str="ABCDEF"; string sub_str_1="BCD"; string sub_str_2="ACD"; 则在主串... 阅读全文

posted @ 2016-03-10 15:50 海南一哥 阅读(275) 评论(0) 推荐(0) 编辑

寻找第k元
摘要:要求:给定一个数组array[n],寻找大小排在第k的元素 思路一:最直接的思路就是先排序,这样可以直接通过数组下标找到第k大的元素,最好的快速排序时间复杂度为O(nlogn)。 思路二:我们可以在快速排序的基础上进行改进,即运用快速排序框架,不过快速排序中的基准元素,我们采用随机划分而不是快速... 阅读全文

posted @ 2016-03-10 15:44 海南一哥 阅读(133) 评论(0) 推荐(0) 编辑

【数据结构课程大作业】通信录管理系统
摘要:该软件为本人数据结构课程设计作业,采用win32控制台程序,基于链表的增删改查,可供计算机专业在校大学生作为数据结构课程设计参考 每次使用需输入密码,初始密码为:123。可在软件主界面选择修改密码功能修改密码。 具体功能如下: 1输入信息。用来输入联系人的姓名与号码,当输入# #时表示结束。例如... 阅读全文

posted @ 2016-03-10 14:45 海南一哥 阅读(289) 评论(0) 推荐(0) 编辑

统计一个句子中的单词个数
摘要:要求:输入一个字符串,输出该字符串中的单词的个数,如" I am a college studnet. hei hei",输出结果为7 思路:用一个while循环扫描整个字符串,先将单词个数初始化为0,当扫描到一个单词则sum++,关键是如何判断是否满足为一个单词,如果用字符指针pInde... 阅读全文

posted @ 2016-03-10 12:09 海南一哥 阅读(823) 评论(0) 推荐(0) 编辑

句内单词反转
摘要:要求:将一个字符串在句内按单词反转,如将I am a student.反转后输出student. a am I 思路一:很容易观察到输出后的结果是在原字符串基础上按单词逆序输出,因此很容易想到用栈来实现,因为栈是用来先进后出的一种数据结构,因此我们可以将每个单词入栈,然后出栈即为结果。 思路... 阅读全文

posted @ 2016-03-10 11:37 海南一哥 阅读(154) 评论(0) 推荐(0) 编辑

【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个
摘要:要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系。 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部空格,则pStart+1,即让pStart始终指向整个字符串的首个非空格字符,用字符指针pI... 阅读全文

posted @ 2016-03-10 10:17 海南一哥 阅读(333) 评论(0) 推荐(0) 编辑

求连续子数组的最大和
摘要:要求:输入一个整型数组,数组里有正数也有负数,数组中一个或连续的多个整数构成一个子数组,求所有子数组的和的最大值。 如:输入的数组为{1,-2,3,10,-4,5,1,-5},则输出结果为15. 思路一: 最直接的思路,可以用两层for循环解决,用来枚举出所有的子数组的和,但这种方式时间复... 阅读全文

posted @ 2016-03-09 16:02 海南一哥 阅读(203) 评论(0) 推荐(0) 编辑

同一进程不同线程之间的资源共享与独享
摘要:同一进程不同线程之间的资源共享与独享 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个... 阅读全文

posted @ 2016-03-07 21:41 海南一哥 阅读(1836) 评论(0) 推荐(0) 编辑

C语言中的内存分配
摘要:对于一个C语言程序而言,内存空间主要由以下几个部分组成: 1)程序代码区:用来存储程序的二进制代码 2)全局区/静态存储区 3)BSS段:用来存储未初始化的全局变量和静态变量。 4)栈区:存储局部变量,函数的形参。 5)堆区:动态分配的内存。 用图示表示如下: 阅读全文

posted @ 2016-03-07 21:37 海南一哥 阅读(120) 评论(0) 推荐(0) 编辑

【翻译】Ext JS最新技巧——2016-3-4
摘要:原文:Top Support TipsKevin Cassidy:Grid水印Ext JS的Grid是一个便于在布局中显示信息的伟大工具。有些用户可能会希望将这些信息打印为会议资料或宣传材料,而且会希望在打印的时候,能添加水印以便进行版权保护、保密或作为品牌的一种方式。这个很容易实... 阅读全文

posted @ 2016-03-05 16:09 海南一哥 阅读(177) 评论(0) 推荐(0) 编辑

导航