自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安卓开发2048不显示游戏界面的百分百解决方法

学习安卓UI开发的时候一定少不了做2048这款游戏来练手,从网上的极客资源学习下来或者是下载的其他的工程都会出现一个问题,在低版本的安卓手机上可以完美运行,但是换到安卓高版本的手机就显示不出界面。对于这个网上有很多的解决方法,有些重写了startgame()函数,在代码的改写方面一些大佬说的很简单,但是这对于新手而言好像不容易理解。这里我给出大家一个基于极客的源码的调整的方案。可以百分百解决界面不显示的问题。如果解决了你的困扰,可以点个赞支持一下我。代码改动:在GameView这个class中写一个

2020-07-19 10:07:48 1573 4

原创 萌新做点小玩意儿DAY-15 线性表(顺序表)及其应用

众所周知,程序=数据结构+算法。今天开始就做几个数据结构有关的小玩意儿,首先就是线性表,线性表是最简单,最常见的数据结构之一,线性表就是n个具有相同特性的数据元素的有限集合。线性表的特点就是一对一,除了第一个元素每一个元素都只有一个前驱,除了最后一个元素每一个元素都只有一个后继,而一块储存地址对应了一个数据元素。顺序表是线性表的表现形式。使用线性表首先要定义顺序表。然后给顺序表申请存储空间,申请存储空间的方法有静态申请和动态申请,动态申请的过程对于c和c++有些区别。(代码以int类型变量为例)顺序表的

2020-07-14 18:48:42 2348

原创 萌新做点小玩意儿DAY-14 0-1背包问题之圣诞老人送礼物

用到贪心算法的最最最标准的例题就是0-1背包问题,选择一个最优的贪心策略决定了算法是否能找到最优解,在0-1背包问题中的贪心策略有:最大价值优先,最小重量优先,最大单位价值优先的策略,这样也就决定了贪心算法不能保证一定能够找到最优解,而0-1背包问题采取最大单位价值优先的策略时,是可以得到最优解的。因此我们需要证明是否我们的贪心选择可以达到最优。问题描述:圣诞节来了,圣诞老人给孩子们送礼物,现在有很多箱不同的礼物,每箱有自己的价值和重量,每箱都可以拆分成散装带走,圣诞老人的雪橇可以携带重量为W的礼物,请

2020-07-11 11:26:56 221

原创 萌新做点小玩意儿DAY-2 五子棋AI拓展思想

从DAY-1说的准备今天做的工作说起,先说一下目前的构想,实现一个时空平衡的好的AI算法并不简单,在我对五子棋有了初步的了解之后,初步分析出来的方法主要分三步,同时也发现了自己的思维中的漏洞和问题。(1)对特定的棋术和棋型进行赋权和声明定义,如活四(差一子且两点均活可成五)、冲四(差一子但有一点活可成五)、活三(差两子且两点均活)、眠三(差两点但有一点活)、活二(差三点且两点均活)、眠二(差三点但有一点活)。出现的问题:声明定义虽然简单,但是如何给每种棋术赋一个合适的权值很难,比如说活四优先级远远高于其

2020-07-11 11:01:56 468

原创 萌新做点小玩意儿DAY-13 DFS解决城堡问题

城堡问题是一个典型的可以用DFS来解决的地图问题,跟之前的面积问题一样,地图类问题都少不了方向向量,因为问题描述比较复杂从问题描述来考虑算法的思路。城堡问题可以算是面积问题的一个基础问题,解决起来比较轻松而且适合接触刚DFS的新手来练手。问题描述:有一个城堡的地形图,如图所示,其中#表示墙不可跨越的区域,而---和—表示可以跨越的区域,墙体围成的每一个闭合区域称为一个房间,编写一个程序计算一共有多少个房间,最大的房间有多大。其中城堡被分割为MxN(M和N不大于50)个方块,每个方块可以有0-4面墙,

2020-07-10 14:16:05 143

原创 萌新做点小玩意儿DAY-12 DFS经典例题素数环

上一篇写的是BFS问题,今天解决了一道经典的DFS例题素数环。在我来看,DFS和BFS最大的区别就在D和B之间,以D优先就是从一个节点走到底,要么出解要么进死胡同,进了死胡同再回溯到最近的活结点换条路走到黑。以B优先就是同一层可以扩展的节点同时扩展。在解决平面问题比如数独问题和面积问题的时候使用BFS会相对好思考一些。问题描述:把从1到n这n个数摆成一个环,要求相邻的两个数之和为一个素数,1<=n<=20。输出一个素数环(两个数字间用空格隔开),要求输出字典序中最大的那一个。比如:输入:

2020-07-09 10:38:32 185

原创 萌新做点小玩意儿DAY-11 BFS解决面积问题

BFS广度优先搜索指的是在子集树中优先遍历同一层的所有节点,然后再深入遍历更深一层的节点,在地图类的问题中一般以某一层地图为初始节点同时扩展来遍历全图。问题描述:编程计算由*围成的下列图形的面积。面积的计算方法是统计*所围成的闭合曲线中的点的数目,如下图所示在10*10的二维数组中,有*围住了15个点,因此面积为15。(题目中以1代替*)算法思想:这是一个标准的BFS地图题,但是需要经过一步转化,无疑就是将图中的*围出来的0数出来,但是计算0的数量的时候,我们要先把不符合要求的0全部转化为1,如

2020-07-07 18:30:28 188

原创 萌新做点小玩意儿DAY-10 随机数算法计算π的值

Today I had a sudden whim to try that if I could write a blog with English. I chose a relatively simple question because I'm afraid I cannot describe it in detail.This topic is about the random number algorithm. We all clearly know that the obvious char.

2020-07-01 19:58:46 264

原创 萌新做点小玩意儿DAY-9 利用队列式分支限界解决抓住那头牛问题

回溯法采用的是是深度优先搜索的策略,一般被用在找到一个问题的所有解。但是当问题只需要找到一个最优解的时候,可以使用分支限界的算法思想。分支限界算法思想就是以广度优先的策略对解空间树进行遍历,每个活结点只有一次机会成为拓展节点,跟分支限界法搭配使用的数据结构最常见的就是先进先出后进后出的队列。问题描述:农夫知道一头牛的位置,想要抓住它,农夫和牛都位于数轴上,农夫起始点是N(0<=N<=100000),牛位于点K(0<=N<=100000)。农夫有两种移动方式,1.从X移动到X+1或

2020-06-28 15:57:44 253

原创 萌新做点小玩意儿DAY-8 逐步优化数字三角形算法

前两天的回溯法的问题都是使用递归解决的,但是有的时候问题规模比较大的时候递归回溯的时间复杂度过高,以指数的形式的增长,例如今天的数字三角形的问题。所以如何优化递归使之转化为递推迭代就至为重要。问题描述:在类似于下图中的数字三角形中寻找一条从顶部到底部的路径,使得路径上经过的数字之和最大。路径上每一步只能往左下或者右下走。求出这个最大的和,其中三角形的行数大于1小于100,数字为0-99。递归思想:用二维数组存放数字三角形,n表示三角形行数,x[i][j]表示第i行第j个数字,Maxsum(i,j

2020-06-27 16:41:19 230

原创 萌新做点小玩意儿DAY-7 回溯法解决字符序列问题

今天继续使用回溯法来解决一个新的题目,跟N后问题还有素数环相似都很简单,都是填空判断递归回溯。问题介绍:从三个元素的集合【A,B,C】中选取元素生成一个N个字符组成的序列,使得没有两个相邻字的子序列(子序列长度=2)相同。例如:N=5时,ABCBA,ABCAB是合格的,而ABABC,ABCBC不是合格的,因为AB和BC子序列是相同的。求对于输入的N,输出的所有满足条件的字符序列。算法思想:跟N后问题极其类似,先建立一个字符数组a[]表示字符序列,第一个字符依次填入ABC后进行深度优先的搜索,根据

2020-06-26 17:25:28 220

原创 萌新做点小玩意儿DAY-6 回溯法解决N后问题

回溯法是一种能解决百分之九十九的问题的一种通用的算法思想,在问题的解空间树中,按深度优先策略对整个解空间树进行搜索,当算法搜索到某一个节点如果不包含问题的解则会直接跳过对这个子树的搜索回溯到这个节点的根节点,继续深度优先搜索。回溯法几个重要的名词:活结点,拓展节点,死节点,约束函数,限界函数。活结点,拓展节点,死节点:从一个节点出发搜索的时候,这个节点就是活结点,同时也会成为拓展节点,在拓展节点搜索到新的节点时就会成为新的活结点并且进行拓展,当拓展节点不能进行纵深方向移动的时候就会成为死节点。回溯法

2020-06-24 18:40:42 377

原创 萌新做点小玩意儿DAY-5 贪心算法解决活动安排问题

当一个问题有最优解结构的性质时候,可以用昨天提到的动态规划算法来解决,但是有时候问题满足一定的条件的时候可以用更为简单的贪心算法的思想来解决,这个条件也就是具有贪心选择的性质——所求问题的整体最优解可以通过一系列局部最优选择来达到,而找出局部最优解的方法是通过定义这个问题的贪婪准则。一个比较形象的例子就是找零钱如何找最少数目的钞票的问题,收银员要找给顾客89元,他会优先选择满足需求的最大面额的钞票也就是50元的,然后剩下的39元再依次优先选择20元,10元,5元,四张一元的钞票。这实际上就是一个贪心算法。在

2020-06-21 20:17:46 512

原创 萌新做点小玩意儿DAY-4 动态规划解决多边形游戏

还是先简单的介绍一下动态规划的算法思想,跟分治法的思想相似的是把一个比较大的问题分解成若干子问题,而分治法分解出来的子问题都是相同规模有相同的解决办法的,动态规划可以通过空间换时间来解决这些相同的问题,比如说我们计算10的4次方的问题,可以分解为10^2*10^2,我们计算出了第一个10的方时可以把答案记录下来再计算到第二个10的方时,直接调用就好了。因此,动态规划算法适合解决的问题有以下特点:1.最优子结构性质(也就是说当问题分解的时候无论怎么分解,由主问题的最优性总能推出子问题的最优性)2.

2020-06-20 18:08:49 1266

原创 萌新做点小玩意儿DAY-3 运用递归和分治的棋盘覆盖算法

今天复习了一下很久很久前学过的分治和递归算法思想。分治顾名思义分而治之,当面对一个规模比较大的问题时,暴力解决问题则会面临庞大的计算量,因此并不妥当,我们可以把一个大的问题转换为规模相同的子问题,通过调用解决子问题的算法来解决整个问题。在我看来递归并不是一种算法而是解决问题的一种思想,最常见的递归计算就是计算n!和斐波那契数列,递归的特点就是代码实现起来比较快捷,短短的几行代码就可以计算解决斐波那契数列问题。而非递归的方式则要实现一个很复杂很复杂的函数。int Fibonacci(int n)

2020-06-19 17:20:38 1215

原创 萌新做点小玩意儿DAY-1 用JAVA写个最简单的五子棋

学了那么多的语言,平常有闲工夫打游戏不如写点小玩意来娱乐一下。JAVA是我学的时间最短的语言但同时是目前我掌握的最好一门语言。学的时间比较久了不想忘记JAVA的用法,所以花点时间写个简单的五子棋。目前五子棋功能比较简单,只能支持键盘输入坐标的形式来下棋,而且只能支持人人对战模式。下面是主要的代码块:在这里插入代码片...

2020-06-17 17:12:05 366

空空如也

空空如也

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

TA关注的人

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