自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

穷理何须格物的博客

记录学习的点滴

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败 解决方案

最近使用SQLServer 2008数据库进行开发,在用Java代码连接数据库的时候遇到一个问题,应该是个常见的问题了,在网上找了很多方法都不能解决,最后通过一个无意的尝试,解决了这个问题,在此记录一下。开发工具是MyEclipse8.5和SQL Server 2008。出现的问题是:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机

2017-05-06 15:06:46 29907 6

原创 SSH远程拷贝文件

在linux系统中可以用cp进行文件的拷贝。当我们通过SSH远程登录到服务器或其他机器上的时候,要如何拷贝文件呢?答案是用scp命令。这个命令用起来也很简单。1,从服务器拷贝文件到本地,在本地终端输入命令,命令格式:scp远程用户名@IP地址: 文件名1 本地用户名@IP地址:文件名2。可以省略“本地用户名@IP地址”:scp远程用户名@IP地址:文件名1文件名2例子:从服

2017-01-09 08:42:09 23939

原创 安卓中的特殊服务:IntentService

Service是Android中的四大组件之一,它是在后台运行的,被用来处理比较耗时或长时间运行的操作。现在我们有一个需求:下载一个大的文件。根据Service的特性,我们很容易想到用开启一个Service来进行下载。Service有两种启动方式,startService和bindService,那么问题来了,我们用哪种方式启动呢?方案1:用一个程序组件startService,用该方法启动Ser

2016-10-10 21:20:33 1758

原创 特殊的求和:1+2+3+...+n

问题:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。分析:1+2+3+...+n是一个等差数列,用等差数列求和公式,n*(a1+an)/2,但题目中要求不能用乘除,此方法不可行;遍历?题目中不让用循环,但是我们可以用递归来代替循环,写一个函数,每次传参数为n-1,当n为1时递归终止。但是题目中不让用

2016-09-11 20:15:56 3381

原创 求累加和小于等于k的最大子矩阵

来自牛客网左程云第三课第二题问题:给定一个无序矩阵,其中有正,有负,有 0,再给定一个值 k,求累加和小于等于 k 的最大子矩阵大小,矩阵的大小用其中的元素个数来表示。分析:这个问题也是一个子矩阵问题,参看求子矩阵的最大和的分析,我们同样可以将其转换成子数组问题。本题的算法原型是未排序数组中累加和小于或等于给定值的最长子数组长度。解法:我们求出以每一行的为首行的子矩阵的列累加和,就是将

2016-08-20 09:59:25 1386

原创 求子矩阵的最大和

来自牛客网左程云第三课第一题问题:给定一个无序矩阵,其中有正,有负,有 0,求子矩阵的最大和。要求:时间复杂度O(N^3)分析:一个最直接的方法就是找到所有的子矩阵,然后遍历这些子矩阵并计算其累加和,找出最大的。矩阵将矩阵中的每一个点作为子矩阵的左上角,我们可以得到N*N的数量级的子矩阵数量。那么一共有N*N个点可以作为子矩阵的左上角,子矩阵的数量到达O(N^4)的数量级,我们在计算每

2016-08-19 22:25:42 3123

原创 未排序数组中累加和小于或等于给定值的最长子数组长度

问题: 给定一个无序数组 arr,其中元素可正、可负、可 0,给定一个整数 k。求 arr 所有的子数组中累加和小于或等于 k 的最长子数组长度。 例如:arr=[3,-2,-4,0,6],k=-2,相加和小于或等于-2 的最长子数组为 {3,-2,-4,0},所以结果返回 4。要求: 时间复杂度(N*logN)分析:这个问题和前一篇的问题很像,区别在于本题是小于或等于的。那么我们是否能用

2016-08-18 10:18:48 3342 3

原创 未排序数组中累加和为给定值的最长子数组系列问题

牛客网左程云第二课第三题,这是一个很重要的算法原型。问题:给定一个无序数组 arr,其中元素可正、可负、可 0,给定一个整数 k。求 arr 所有的子数组中累加和为 k 的最长子数组长度。 要求:时间复杂度 O(N)分析:本题和未排序正数数组中累加和为给定值的最长子数组长度这个问题的区别在于,数组中的数和给定的k值是任意整数,可以为正、负、零。上一个问题只能是整数。那么我们是否能用

2016-08-17 11:13:47 2363 5

原创 未排序正数数组中累加和为给定值的最长子数组长度

来自牛客网左程云算法第二课第二题问题: 给定一个数组 arr,该数组无序,但每个值均为正数,再给定一个正数 k。求 arr 的所有子数组中所有元素相加和为 k 的最长子数组长度。 例如,arr=[1,2,1,1,1],k=3。 累加和为 3 的最长子数组为[1,1,1],所以结果返回 3。 要求: 时间复杂度 O(N),额外空间复杂度 O(1)分析:我们最容易想到的解法还是暴力,暴力出

2016-08-16 10:10:46 1599 1

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

问题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析:解题方法有很多,我们最容易想到的方法就是将数组中的数做个统计,计算每个数出现的次数,看看其中有没有超过数组中出现次数超过一半的数字。我们再深入分析一下,如果存在这样的一个数字

2016-08-15 15:08:57 1233

原创 求两个子数组最大的累加和

来自牛客网左程云算法第二堂课第一题问题:给定一个数组,其中当然有很多的子数组,在所有两个子数组的组合中,找到相加和最大的一组,要求两个子数组无重合的部分。最后返回累加和。 要求: 时间复杂度达到 O(N)解法:这道题的算法原型就是子数组的zui'da

2016-08-15 10:30:23 1549

原创 leetcode 53. Maximum Subarray 子数组最大和

问题:给定一个数组,其中当然有很多的子数组,在所有子数组中,找到相加和最大的一组,最后返回累加和。 要求: 时间复杂度达到 O(N)分析:这道题我们最容易想到的解法就是遍历数组,以每个元素作为子数组的首元素进行一次遍历,找出以该元素为首的子数组的累加和,找出其中最大的。需要进行(N+1)*N/2,时间复杂度为O(N*N)级别。如何能够使时间复杂度达到O(N)级别呢?下面开始我们的解法。

2016-08-15 07:48:22 1139

原创 leetcode11. Container With Most Water两根柱子围成最大面积

牛客网第一课第三题问题:给定一个非负数的数组,数组中的每个值代表一个柱子的高度,柱子的宽度是1。两个柱子之间可以围成一个面积,规定:面积=两根柱子的最小值*两根柱子之间的距离。例子:数 组[3,4,2,5]。3和4之间围成的面积为0,因为两个柱子是相邻的,中间没有距离。3和 2之间围成的面积为2,因为两个柱子的距离为1,且2是最短的柱子,所以面积=1*2。3和5之间围成的面积为6,因为两个

2016-08-13 16:16:55 834 1

原创 leetcode 42. Trapping Rain Water

牛客网第一课的第二题问题:.给定一个非负数的数组,代表一个容器。例如数组[0,1,0,2,1,0,1,3,2,1,2,1],就是以下图形中黑色的部分。如果用这个容器接水的话,请问可以接多少水?还以这个数组为例, 可以接6格水,就是以下图形中蓝色的部分。 要求:实现时间复杂度O(N),额外空间复杂度O(1)的解法。比较朴素的想法就是我们把数组中的数当作容器壁,求出各个容器壁之间可以存多少

2016-08-12 22:02:48 343

原创 leetcode 354 Russian Doll Envelopes 二元组最长递增子序列

最近在牛客网听左神讲课,在此记录一下。题目是leetcode 354. Russian Doll Envelopes问题:给定一个N*2的二维数组,看作是一个个二元组,例如[[a1,b1],[a2,b2],[a3,b3]], 规定:一个如果想把二元组甲放在二元组乙上,甲中的a值必须大于乙中的a值,甲中的b 值必须大于乙中的b值。如果在二维数组中随意选择二元组,请问二元组最多可以往上摞几个?

2016-08-11 20:03:33 984

原创 最长递增子序列

问题描述:给定一个数组a[a1,a2,a2......an],求它的最长递增的子数组长度。最朴素的思想:求出以数组中每一个位置结尾的的最长递增子序列,选择其中的最大值,时间复杂度为O(n*n)。现在有一种更巧妙的思想可以将时间复杂度变为O(n*logn),一看到logn我们很容易想到二分,使用二分的前提条件是有序,那么如何能够达到有序呢?最长递增子序列O(n*logn)解法:首先开一个

2016-08-01 10:00:19 418

原创 状态选择器selector

在开发中,经常要对某一个控件的不同状态更换背景图片。例如:一个按钮按下的时候给它一个按下的效果,抬起按钮状态变回原来的样式。这时候我们可以用一个selector来实现。在我的Android学习 游戏开发之打地鼠(二,游戏设计和主界面设计)这篇博文中有如下一段代码: /** * 设置按钮按下和抬起的效果 */ @Override public boolean onTouch(V

2016-08-01 07:59:50 454

原创 使用开源项目实现ListView下拉刷新

学会了如何把在github上下载的开源项目导入到我们自己的项目中,在这篇文章中点击跳转。下拉刷新是很多软件都要有的功能,在github上我们也可以直接下载开源项目,点击打开下载链接。带有下拉刷新的ListView和ListView一样也需要适配器,使用方法基本相同,我们主要的工作是做刷新时的操作。在我们项目中使用具体该开源项目的方法如下:1,在布局文件中添加控件<com.handmar

2016-07-19 18:06:35 886

原创 如何使用github上的开源项目

android是开源的,开源的力量是无穷的。有很多大牛写把一些常用功能封装好,我们直接使用就可以了。ListView下拉刷新是一个常见的功能i,在github上我们可以很容易的下载下来为我们项目使用。下载链接:https://github.com/chrisbanes/Android-PullToRefresh。下载下来,解压后如图所示library文件夹就是我们项目中要引用的。sampl

2016-07-19 14:12:03 9880 1

原创 Instant Run requires 'Tools' | Android | Enable ADB integration' to be enabled

在使用android studio时,当我运行程序的时候,遇到这样一个问题,如下图:解决办法:在Android Studio的工具栏上选中Tools -> Android  勾选 Enable ADB Integration。如下图:顺便吐槽一下:Android Studio还真是吃内存呀!

2016-06-25 19:58:22 336

原创 genymotion模拟器无法启动:VirtualBox cannot start the virtual device

最近用上了genymotion的android模拟器,真的是流畅不少,但是我第一次启动模拟器是遇到了一个问题,我的模拟器无法启动。问题如下:原因:模拟器内存分配过大。解决办法:修改模拟器内存。打开Oracle VM VirtualBox 可以看到我们的模拟器,点击设置,在设置界面选择系统,如下图:在画红线的地方,我们可以拖动滑块修改内存。默认是2048M,在这里我修改为

2016-06-24 18:32:42 769

原创 按两次返回键退出程序

在我们日常使用的应用中,很多应用都是按两次返回键才能退出,这是一种防止误触返回键的一种做法,那么这是怎么实现的呢?其实很简单,我们监听返回键,当按一次返回键,提示“再按一次退出”,当用户再次按返回键,退出程序。核心代码如下: long mHits[] = new long[2]; /*** * 按两次返回键退出程序 */ @Override public boolean onKe

2016-05-20 20:22:15 581

原创 Android控件的两次及多次点击事件

自己模拟了一个Button的双击事件,想到三击事件要怎么写呢?通过查看Google大牛的多次点击的事件,发现我的学渣真是难以望其项背。。。多次点击事件的原理:记录每次点击事件的当前时间,判断最后一次点击与第一次点击事件的时间的差值,如果小于500ms(可以自己定义这个值),认为是多次点击事件。下面以3次点击事件为例写一个代码。1,mHits数组长度相当于点击点击次数。也就是说现在数组长度为

2016-05-16 11:10:42 5541

原创 EditText 输入时动态显示结果

当我们在输入框输入一些文字,输入完成后,可以根据些文字来进行查询等操作。有一个提升逼格的技巧就是我们每输入一个文字会动态的显示结果。应用场景:归属地查询,我们输入电话号码,点击查询,显示归属地。在这里我们可以在每输入一个数字就进行一次归属地结果的显示,达到动态显示的效果。实现:为EditText设置一个addTextChangedListener监听,传一个TextWatch的对象并实现里面的抽象

2016-05-16 10:08:06 1130

原创 Activity主题设置问题 You need to use a Theme.AppCompat theme (or descendant) with this activity.

问题的产生:在android的开发中,想要为activity设置一个透明全屏的主题。在清单文件的相应的activity中用到了这个属性android:theme="@android:style/Theme.Translucent.NoTitleBar",运行时程序崩溃了,LogCat中的错误提示如下:java.lang.RuntimeException: Unable to start act

2016-05-16 09:52:39 503

原创 android开发 程序去掉标题栏按菜单键程序崩溃

在android开发中,去掉标题栏我们可以在styles.xml文件中添加这样的代码。 true 但是会产生一个问题,就是按菜单键程序会崩溃。产生原因:我们编写的Activity继承ActionBarActivity。解决办法1,让程序中的所有我们编写的Activity都继承Activity。解决办法2:仍然继承ActionBarActivit

2016-05-13 14:58:26 829

原创 asm.jar 安卓手机屏幕在电脑上显示

在安卓开发中,使用手机来展示自己的作品要比模拟器效果更好,但是有时候人比较多,手机太小不方便展示,我们可以通过asm.jar这个文件来将手机屏幕显示在电脑上。asm.jar下载地址:http://pan.baidu.com/s/1o8oym0M首先我们把安卓手机通过数据线连接到电脑上,下载好这个工具后,我们在命令行里面输入java -jar asm的目录/asm.jar。asm的目录为当前

2016-05-12 16:48:40 3036 3

原创 ListView的使用和优化

ListView是android中比较常用的控件,常用于显示列表等,对于它的使用应该熟练掌握。一、ListView的使用1,在布局文件中声明一个ListView控件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

2016-05-11 19:53:23 470

原创 Android学习 游戏开发之打地鼠(终)(五,排行榜和游戏音效)

游戏的基本功能都已经实现了,最后来说一说排行榜的显示和游戏音效的添加。排行榜的显示主要用的Android中一个比较重要的控件ListView。ListView的使用还是比较简单的,第一步在布局文件中建立一个ListView的节点,在代码中通过ID得到该控件。第二步给该控件设置一个适配器,适配器写一个类,该类继承BaseAdapter并实现未实现的方法,一共有4个为实现的方法,getCount(

2016-04-27 15:30:33 5628 1

原创 Android学习 游戏开发之打地鼠(四,游戏结束和数据存储)

游戏结束弹出保存玩家姓名和分数的窗口,玩家输入姓名后点击确定保存到数据库中。玩家可以通过主界面的排行榜可以查看到分数从高到低排行的榜单。建立一个玩家类用来处理玩家的信息,该类实现类序列化接口,实例可以被序列化便于数据的传递。代码如下:package cn.com.cyj.mouse.enity;import java.io.Serializable;/** * 玩家信息类,

2016-04-27 14:17:13 3891 2

原创 Android学习 游戏开发之打地鼠(三,打地鼠设计实现)

上篇文章中对开始打地鼠游戏的思路做了简单的介绍,现在来具体的说一说开始打地鼠游戏的实现,先说说布局,用LinearLayout或TableLyout都可以。上面一行是4个TextView下面的地洞是ImageButton。游戏中打中或没打中地鼠都更新会对应按钮背景图。打中地鼠的效果图(图1)和没打中的效果图(图2)。游戏中需要开启一个线程来控制游戏时间,更新显示剩余时间时,游戏0.5s更新

2016-04-24 17:43:22 18987 11

原创 Android学习 游戏开发之打地鼠(二,游戏设计和主界面设计)

游戏设计思路:主界面点击开始游戏:进入打地鼠界面游戏中有12个地洞,游戏时间为30s(可以自己设置),每0.5s会有地鼠随机出现在一个地洞中,玩家触摸屏幕,打到地鼠加10分,否则不加分。30s后游戏结束,弹出窗口显示获得分数,需要玩家输入姓名后,点击确定保存到本地数据库中。设计实现:每个地洞为一个ImageButton,开始设置背景为地洞图片,地鼠出现则设置为地鼠图片,给每个按钮添

2016-04-24 14:17:54 7034 12

原创 Android学习 游戏开发之打地鼠(一,需求分析与设计)

学习Android也有一段时间了,最近几天正赶上学校要交一个android的作业,于是就有了这个小作品,并不是规范的开发,只是完成了部分功能,和市面上的作品不能相提并论,游戏中所用到的图片和音效均来自于网络。先来看看需求分析以及效果图游戏的第一界面有5个按钮,开始游戏,排行榜,关于,退出和音乐图标,点击开始游戏即进入打地鼠游戏游戏结束后会进入玩家记录窗口点击排行榜查看游戏玩家记

2016-04-24 09:45:18 9767 3

安卓打地鼠

安卓版打地鼠,使用eclipse开发。开发文章参考http://blog.csdn.net/qq_31010431/article/details/51232193,如有问题可以与我联系,我的邮箱[email protected]

2017-06-29

空空如也

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

TA关注的人

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