自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小地盘的诺克萨斯

博观而约取,厚积而薄发

  • 博客(38)
  • 资源 (11)
  • 收藏
  • 关注

原创 剑指offer 面试题32—从1到n整数中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,12。所以1一共出现了5次。解法一:O(nlogn)基本思想:累加1到n每个整数中1出现的次数。n个数,每个数有O(logn)位。#include using namespace std;int numberof1(int n)

2015-04-30 17:09:12 1093

原创 剑指offer 面试题29—数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。解法一:先将数组排序,然后出现次数超过一半的数字就是a[n/2+1],时间复杂度O(nlgn)。解法二:O(n)基本思想:消除原理:在遍历数组的时候保存两个值:一个

2015-04-30 11:03:30 849

原创 剑指offer 面试题21.22—栈操作以及判断弹出序列

题目:1.定义栈数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push以及pop的时间复杂度都是O(1)。2.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,   序列   4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,

2015-04-30 09:56:35 817 2

原创 剑指offer 面试题20—顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1             2             3             45             6             7             89             10            11             1213

2015-04-29 19:25:44 733

原创 剑指offer 面试题14—调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数组的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。解法一:O(n^2)从头扫描数组,每碰到一个偶数,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位中。由于每碰到一个偶数就需要移动O(n)个数字,因此总的时间复杂度是O(n^2).

2015-04-29 19:05:17 884

原创 编程之美2.19—区间重合判断

题目:输入两个表示区间范围的整数[x,y]然后输入N个无序区间[x1,y1], [x2, y2], [x3, y3]...求解第一次输入的区间是否在N个无序区间组合成的大区间中。基本思想:先用区间的左边界值对目标区间进行排序O(nlogn),对排好序的区间进行合并O(n),对每次待查找的源区间,用二分查出其左右两边界点分别处于合并后的哪个源区间中O(logn),若属于同

2015-04-28 22:58:32 1126

原创 编程之美3.3—计算字符串的相似度

题目:许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:  1.修改一个字符(如把“a”替换为“b”);  2.增加一个字符(如把“abdd”变为“aebdd”);  3.删除一个字符(如把“travelling”变为“traveling”);比如,对于“abcdefg”和“abc

2015-04-28 13:35:33 1132

原创 编程之美3.1—字符串移位包含问题

题目:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位得到的字符串包含。解法一:O(N^2)对s1进行循环移位,在进行字符串包含的判断。//s1,s2int len = strlen(s1);for(i:len){ char t=s1[0]; for(j:len-1) s1[j]=s[j+1]; s1[len

2015-04-28 11:54:02 929 2

原创 编程之美2.18—数组分割

题目:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。基本思想:假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:S(k, 1) = {A[i] | 1S(k, k) = {A[1]+A[2]+…+A[k]}

2015-04-28 11:37:54 1065

原创 编程之美3.6—判断两个链表是否相交

解法一:判断第一个链表的每个节点是否在第二个链表中,O(M*N);解法二:对第一个链表的节点地址hash排序,建立hash表,然后对第二个链表的每个节点的地址查询hash表,如出现,相交时间复杂度O(M+N),空间复杂度O(M)。解法三:把第二个链表接在第一个链表后面,得到的链表有环,相交,否则,不相交。‘第二个链表的表头一定在环上,只需从第二个链表开始

2015-04-27 23:03:15 781

原创 编程之美2.12—快速寻找满足条件的两个数

题目:能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值M。解法一:穷举:O(N^2)解法二:先排序,再二分查找M-a[i],排序O(NlogN),每个数二分查找O(NlgoN)总的时间复杂度O(NlogN)解法三:hash表,给定一个数字,根据hash映射查找另一个数字是否在数组中,O(1).总的时间复杂度O(N),

2015-04-27 22:41:05 965

原创 编程之美2.17—数组循环移位(旋转数组)

题目:把一个含有N个元素的额数组循环右移K位,要求时间复杂度O(N),且只允许使用两个附加变量。解法一:O(N^2)每次将数组中的元素右移移位,循环K次。当K>N时,右移K位和右移K%N位是一样的。MyShift(int a[],int N,int K){ K%=N; while(K--) { int t=a[N-1];

2015-04-27 22:17:59 852

原创 阿里 2016届实习生招聘笔试

阿里 (2015)2016届实习生招聘笔试 移动客户端开发工程师附加题

2015-04-27 13:18:00 1255

原创 华为机试—给定字符串中找出单词

题目:在给定字符串中找出单词(“单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一个单词后不

2015-04-27 12:07:01 1203

原创 互联网公司Android客户端面试 知识点

Android内存回收机制、DVM和JVM区别、DVM内存分配OOM,如何解决OOMActivity4种launch mode、Activity怎么启动EventBus网络如何异步加载Cache缓存机制Universal-Image-Loader开源框架的实现原理Java、Android线程池,如何自定义线程池Android定时器的实现代码实现判断手机有无内存卡StackOverflow

2015-04-26 21:37:44 932

原创 阿里 Java面试 知识点

===================================基础知识篇===================================多态 java反射 java序列化 内部类作用 final作用 interface和abstractClass区别 synchronized和volatile区别 hashmap和hashtable的区别

2015-04-26 20:47:22 1235

原创 腾讯 2016届实习生招聘笔试

腾讯2015(2016届)实习生校招笔试,除了选择题外,还有五道大题,其中三道算法类的题。第一题:抽奖算法实现题目:一个商场进行一场抽奖活动,其中有两个奖项,第一个奖项A抽中的概率是1/6,第二个奖项B抽中的概率是5/6;用C语言编码实现这个抽奖程序。 题目通过一个XML文档给出。基本思想:生成一个随机数随机数对6取余,得到的余数一定是0、1、2、3、4

2015-04-26 17:21:24 1248

原创 小米 2016届实习生招聘笔试

第一部分:三道编程题。1.两个整数的二进制表示中,求不同位数的个数。   比如输入1和2,01和10不同位数为2,故输出为2.2.选择买入卖出股票的最大收益,要求交易次数为两次,但是第二次买入必须在第一次卖出的时间节点之后。    比如{3,8,5,1,7,8},最大收益为8-3加上8-1,等于12.3.求linux文件目录中两个分支的最近父节点。   root

2015-04-26 15:03:12 1317

原创 360 2016届实习生招聘笔试 综合题

第一部分四十道选择题基础知识,比较BAT的笔试题,相对难度低一点。第二部分两道编程题1,题目:在一个二维数组中,每一行都按照从左到右递减的顺序排序,每一列都按照从上到下递减的顺序排序。输入这样的一个二维数组和一个整数,判断数组中是否含有该整数,如有输出整数的位置。2,题目:选镇长,镇子里有N个人,要选出一个镇长,镇长要求:镇长认识所有人,所有人都认识镇长,编

2015-04-26 11:51:12 1950

原创 位、字节、字符、汉字的关系

1 bit 二进制数据1 byte = 8 bit1 字母 = 1 byte = 8 bit1 汉字 = 2 byte = 16 bit1. bit:位一个二进制数据0或1,是1bit;2. byte:字节1 byte = 8 bit3.一个英文字符占一个字节;1 字母 = 1 byte = 8 bit4. 一个汉字占2个字节;

2015-04-26 10:55:14 1400

原创 编程之美2.2—阶乘计算

题目:1.给定一个整数N,那么N的阶乘N!末尾有多少个0?如N=10,N!=3628800,N!的末尾有两个0;2.求N!的二进制表示中最低位1的位置。问题1解法一:基本思想:N!=K*10^M,那么N!末尾有M个0.N!=2^X*3^Y*5^Z,M=min(X,Z)。因为X>=Z,所以M=Z。计算i(i=1,2,---,N)的因为分解中5的指数,求和。re

2015-04-24 15:01:47 924

原创 华为机试—条条道路通罗马

题目:基本思想:这是一个深搜问题,不过呢,你可以看到题目截图中有答案提示:城市数目较多,因此不能使用完全遍历,无法满足时间复杂度要求。所以需要对数据做一下预处理,也就是将map转换为链表形式的,本来map应该是只有0,1的值,表示有路径或者没路径。不过为了节约点内存(虽然没什么必要),所以map复用。当前节点i如果和另外的节点j相连,则将节点j放在map中。第0个元素存

2015-04-24 14:29:46 1646 1

原创 剑指offer 面试题10—二进制中1的个数

题目:实现一个函数,输入一个整数,输出该数二进制表示中1的个数。如9的二进制是1001,因此输入9输出2。解法一:可能死循环int num1(int n){ int count =0; while(n) { if(n&1) count++; n=n>>1; } return count;

2015-04-24 11:37:54 950

原创 剑指offer 面试题8—旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组(3,4,5,1,2)位{1,2,3,4,5}的一个旋转,该数组的最小值为1.基本思想:二分查找,p1指向a[0],p2指向a[len-1]。如果a[mid]>a[p1],则最小值在后半段,p1=mid;如果a[mid]特殊情况:

2015-04-23 17:09:05 832

原创 剑指offer 面试题4—替换字符串中空格

题目:实现一个函数,把字符串中的每个空格替换成“%20”。加入输入“we are happy.”,则输出“we%20are%20happy.”。时间复杂度为O(n^2)基本思想:从前往后把字符串中的空格替换成%20.假设字符串的长度为n,对每个空格字符,需要移动后面O(n)个字符,因此总的时间复杂度为O(n^2)。时间复杂度为O(n)基本思想:先遍历

2015-04-23 13:17:47 1603

原创 剑指offer 面试题3—二维数组中找数

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。基本思想:首先选取数组中右上角的数字。如果=要找的数字,结束。如果大于要找的数字,剔除这个数字所在的列;如果小于要找的数字,剔除这个数字所在的行。#include using namespace

2015-04-23 11:22:32 1271

原创 剑指offer 面试题2—实现单例模式

题目:设计一个类,我们只能生成该类的一个实例。解法一:懒汉式单例1.适用于单线程环境 //懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton { //私有的默认构造子 private Singleton() {} //注意,这里没有final

2015-04-23 10:23:21 1288 1

原创 Android中ListView原理与优化 浅析

Android中ListView的优化不管在开发中还是在面试中经常会遇到。这不,LZ在阿里2015实习生招聘面试中就被问到,被虐的灰头土脸,回来赶紧总结一下。      提到ListView的优化,首先想到的是利用convertView和ViewHolder来优化ListView数据加载,仅仅就这些吗?其实不是的,首先,想要优化ListView就得先了解ListView加载数据原理。

2015-04-22 15:49:21 1136

原创 Android的crash的类型及原因

Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的。这里把Android平台程序崩溃的各种类型做一个简述和原因列举。1.ANR(可见ANR):发生场景:应用发生ANR。崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”。       “Force Close”将杀掉发生ANR的应用进程。“

2015-04-20 09:46:03 3247

原创 最长回文子串[中心扩展思想]

#include #include using namespace std; string findLongestPalindrome(string &s) { int length=s.size(); int maxlength=0; int start,j,k; for(i

2015-04-19 20:47:35 1663

原创 单链表[建表、输出、插入、删除、逆序]

面试的时候老是被问到单链表知识,索性总结一下。这篇文章主要总结了单链表的创建、输出、逆序、插入和删除。#include using namespace std;typedef int ElemType;//数据类型模板typedef struct Node//结点{ ElemType data; struct Node *next;}Node;typedef

2015-04-17 18:00:49 1293

转载 数据库基础(常见面试题)

数据库基础(面试常见题)一、数据库基础1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control)数据定义:Create Table,Alter Table,Drop Table, Craete/DropIndex等数据操纵:Select ,insert,u

2015-04-13 14:42:06 6237

转载 面试 linux常用命令

完整链接:http://linux.chinaitlab.com/special/linuxcom/Index.html显示目录和文件的命令   Ls:用于查看所有文件夹的命令。   Dir:用于显示指定文件夹和目录的命令   Tree: 以树状图列出目录内容   Du:显示目录或文件大小  修改目录,文件权限和属主及数组命令

2015-04-12 16:10:37 2530

转载 堆和栈的区别(详细)

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

2015-04-09 17:06:33 547

转载 23种设计模式全解析

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2015-04-07 10:09:13 1009

转载 八大排序算法

概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。         当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键

2015-04-02 10:20:58 868

原创 Redis 3.0.0 正式版出炉,高性能 K/V 服务

Redis 3.0.0 正式版终于到来了,与 RC6 版本比较,该版本改进包括:* 修复了无磁盘的复制问题 (Oran Agra)* 在角色变化后对 BLPOP 复制进行测试 (Salvatore Sanfilippo)* prepareClientToWrite() 错误处理方法的改进 (Salvatore Sanfilippo)* 移除 dict.c 中不再使用的函数(Salv

2015-04-02 09:30:09 1097 1

转载 Android View原理(View树遍历,View重绘,View动画)

一、屏幕绘图基础Android中的GUI系统是客户端和服务端配合的窗口系统,即后台运行了一个绘制服务,每个应用程序都是该服务端的一个客户端,当客户端需要绘制时,首先请求服务端创建一个窗口,然后在窗口中进行具体的视图内容绘制;对于每个客户端而言,他们都感觉自己独占了屏幕,而对于服务端而言,它会给每一个客户端窗口分配不同的层值,并根据用户的交互情况动态改变窗口的层值,这就给用户造成了所谓的前台

2015-04-01 10:36:00 6213 1

.NET framwork 4.5

.NET framwork 4.5,是windows中安装软件过程中有时候需要下载的工具包!

2014-12-18

Android中ksoap2-android调用WebService 实现天气预报

Android中ksoap2-android调用WebService 实现天气预报,4.0版本好像不能运行,但是可以参考学习。

2014-11-17

RedisStudio

Redis Studio 是Redis桌面客户端,支持Windows操作系统。 Redis Studio 提供更轻量级,更友好,更高效的Redis管理。

2014-11-11

Android内核剖析

本书详细分析了Android内核的内部机制,包括窗口管理系统、Activity管理系统、输入法框架、编译系统等,为Android内核定制及高级应用程序开发提供技术参考。 请具有一定Android基础的人阅读,比较有难度!

2014-11-10

深入理解JAVA虚拟机第二版.pdf(周志明)

作为一位java程序员,你是否也曾经想深入理解java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,《深入理解java虚拟机:jvm高级特性与最佳实践》极尽化繁为简之妙,能带领你在轻松中领略java虚拟机的奥秘。《深入理解java虚拟机:jvm高级特性与最佳实践》是近年来国内出版的唯一一本与java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义

2014-11-10

机器学习实战

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。 全书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。

2014-10-15

高仿微信源码

高仿微信源码,可以下载学习微信界面的布局设计。

2014-05-14

空空如也

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

TA关注的人

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