自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-03-10

IDEA maven依赖引入成功 但是代码依旧报错(找不到包)我的情况是,在代码重构过程中,需要将多个模块共同拥有的数据独立出来形成一个新的模块,防止冗余。新的模块和原来的模块同在一个父工程下,然后在把各自的pom.xml文件修改完成之后,代码各方面看着都没有错,没有报红啥的。但一运行,就会出现找不到独立出来的数据包,不管是clean-install,删了又添加依赖,还是清楚idea缓存,对我都没啥用。最后是看到一篇文章,说是把项目的构建权限全交给maven。试了一下就可以了,程序运行成功。..

2021-03-10 10:40:04 114

原创 搭建python环境出现ImportError: No module named pip错误

ImportError: No module named pip刚下载python,搭建好环境,第一次使用pip命令时报错。提示缺少模块解决办法:重新安装pip我用的命令是easy_install pip调用的是这里面的easy_install.exe

2020-09-21 17:30:40 564

原创 java从键盘读入多组输入

java从键盘读入多组输入从键盘读入数据,一般使用的是Scanner类,当需要处理多组数据时,该怎么处理呢。比如说下面这种输入输入描述多组数据,每组数据两行,其中:1.第一行为一个整数n,表示数组的元素个数。2.第二行为n个整数(1≤n≤100000),表示数组的每个元素,数据保证在int范 围内, 且数组中没有重复元素。题目中的数据没有总组数,也没也结束符。其实是做不出来的,这里我主动为他加了个规则,读取每组数据的元素个数遇到-1时停止。public List<Lis

2020-09-19 08:54:19 3724

原创 利用回溯算法解决组合求和问题及其优化

利用回溯算法解决组合求和问题问题思路所有这类找出所有可行解的问题的都可以使用搜索回溯的方式解决。回到本题,我们定义递归函数 dfs(target, combine, idx) 表示当前在 candidates 数组的第 idx 位,还剩 target 要组合,已经组合的列表为 combine。递归的终止条件为 target <= 0 或者 candidates 数组被全部用完。那么在当前的函数中,每次我们可以选择跳过不用第 idx 个数,即执行 dfs(target, combine, i

2020-09-11 17:12:40 648 1

原创 三数之和 -双指针解法

三数之和 --双指针解法题目:一般解法三重循坏,分别取三个数,查看和是否为0即可,是就加入集合,不是进入下次迭代。双指针解法思路:

2020-09-11 15:05:59 288

原创 颠倒二进制位 ----巧妙的解法

颠倒二进制问题:将一个int型数据的二进制形式颠倒后,返回颠倒后的数据。简单解法:思路只需要把原来的数字二进制倒序遍历一遍就能得到逆序的二进制了,问题的关键变成了如何获取指定位的数据(是0还是1);注意由于使用的语言是java语言,没有无符号整数,所以要特别注意正数和负数的区别:正数左移:整体左移,符号位不变,右边补零。右移: 整体右移,左边补零负数左移: 整体左移,符号位不变,右边补零右移:整体右移,左边补1代码实现public class Solution

2020-09-10 14:01:58 1957

原创 质数相关的算法 --Sieve of Eratosthenes算法 (埃拉托斯特尼)

质数相关的算法 --Sieve of Eratosthenes算法 (埃拉托斯特尼)质数的定义相关的算法(问题为求小于整数n的所有质数的数量)暴力求解Sieve of Eratosthenes算法 (埃拉托斯特尼)质数的定义只能被自身与1整除的整数为质数,特殊的,0与1不是质数。相关的算法(问题为求小于整数n的所有质数的数量)暴力求解思路:双层循环,外层 循环变量 i 从2遍历到n-1, 内层循环变量 j从2遍历到i, 判断j是能整除i,如果存在j能整除i,则说明i不是质数。实

2020-09-06 23:53:26 443

原创 Fisher-Yates洗牌算法分析与理解

问题打乱一个没有重复元素的数组常规暴力解法讲数组的所有元素复制一份保存在一个ArrayList内,遍历数组,每次遍历生成一个在0到链表大小之间的随机数,将对应索引处的数组元素替换成链表中该随机数对应索引处的元素值,并从链表中移除该元素。时间复杂度: O(n*n)空间复杂度: O(n)Fisher-Yates洗牌算法思路我们可以用一个简单的技巧来降低之前算法的时间复杂度和空间复杂度,那就是让数组中的元素互相交换,这样就可以避免掉每次迭代中用于修改列表的时间了。算法

2020-09-06 16:25:47 578

原创 JAVA中随机数的生成方法

JAVA中随机数概述使用举例Random类的函数接口概述本文先讲解java随机数的几种产生方式,然后通过实例对其进行演示广义上讲,java随机数的产生有三种方式:(1). 通过System.currentTimeMillis()来获取当前时间毫秒数的long型数字(2). 通过Math,random()返回一个0到1之间的double值(3). 通过Random类来产生一个随机数,这是专业的Random工具类,功能强大。使用举例第一种通过System.currentTimeMil

2020-09-06 16:09:24 485

原创 动态规划类问题解题步骤 --附例题(小偷问题)

动态规划类问题解题步骤 --附例题(小偷问题)动态规划基本思想适用情况优点解题步骤实例分析问题解题步骤动态规划基本思想动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。适用情况最优子结构性质。如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。最优子结构性质为动态规划算法解决问题提供了重要线索。无后效性。即子问题的解一旦确定,就不再改变,不受在这之后、包含它的更

2020-09-06 14:48:00 1701

原创 最小序列和问题的几种解法 --贪心+动态规划+分治法

最小序列和问题的几种解法 --贪心+动态规划+分治法问题解决方案1.贪心算法思路算法步骤完整代码2.动态规划思路算法步骤完整代码3.分治法思路算法步骤完整代码问题解决方案1.贪心算法思路维护一个当前序列和变量,如果这个变量小于零,就丢弃这个变量,重新初始化为零,重新从当前索引计算序列和。每次计算之后都要与最大值进行比较。算法步骤参数初始化当前序列和 : 初始化为零最大序列和 : 初始化为最小整数(Integer.MIN_VALUE)遍历数组判断当前序列和是否需要重置序列

2020-09-06 10:07:09 972

原创 爬楼梯问题的几种解法 ----动态规划(递进与滚动数组) + 矩阵快速幂解法

问题普通的动态规划 ----递归由于最后一步一定是跳一阶或者两阶台阶,所以f(n) = f(n-1) + f(n-2), 这里复杂的问题变成了子问题求解,符合动态规划的使用条件,所以这道题可以用动态规划来做,递归代码如下:public int function(int n){ if(n==0||n==1){ //当台阶只有零阶一阶时只有一种走法。 return 1; } return function(n-1)+function(n-2);}改进 ----滚动数组上面的这种递归的

2020-09-05 20:16:16 477

原创 快速幂算法原理及优化

#快速幂算法#问题描述这道题的常规解法很简单,简单的一个循环就能搞定/***普通的求幂函数*@Param base 底数*@Param power 指数*@return 求幂结果是最后三位表示的整数**/public int normalPow(long base, long power){ long result = 1; for(int i=1;i<=power;i++){ result *= base; } return resul

2020-09-05 10:47:57 506

原创 常用的计算法则

计算法则取余运算计算法则(a+b) % p = (a%p + b%p) % p(a- b) % p = (a%p - b%p) % p(a* b) % p = (a%p * b%p) % p

2020-09-05 09:37:34 363

原创 二分查找实例分析 --第一个错误的版本

java二分查找分析总结使用场景

2020-09-05 00:25:12 146 1

原创 java实现快速排序算法详解

快速排序总结思路快速排序将一个集合分成两个区域,一个区域中的所有元素都比另外一个区域中的元素小。对分出来的区域再次进行划分,不断划分后,会形成一个完全有序的集合。算法参数待排序集合待排序区域的左边界索引待排序区域的有边界索引返回值快速排序无返回值步骤1:判断递归终止条件条件:待排序区域的左边界与右边界是否相等。2:参数初始化key:用来区分两个区域的值,左边区域所有区域都比key值小,右边区域都比key值大。 --初始化为最左边元素的值i:左边区域的右边界。(后面

2020-09-04 22:34:05 215

原创 指针赋值NULL与free指针的区别

使用一个指针首先是要给他分配一定的空间大小,在使用完后当然要回收内存以免造成内存资源泄露。1:char *p = (char*)malloc(sizeof(1000));    //为字符型指针p分配了1000个字节的内存。......2:free(p);    //将系统自动分配给p的内存资源释放,也就是说这段内存现在是自由的,能被其他任何对象访问。3:p = NULL;p是指向...

2018-12-03 17:43:24 2236

原创 RPG地图绘制 Android studio

    今天也是很累很累的一天呢, 终于把地图在手机上画出来了,不容易啊。60*33的地图,3层图层。导入的时候还只有地图的二维数组数据,图片的导入还要靠自己一张一张弄,笔者先是写了个地图数组里面包含的所有不同的数字编号,为后面导入小图做准备。(因为网上找的资源,参杂很多没用的资源,2000多张,挨个导入太多了,虽然省了第一步)倒入小图共260张,内心崩溃。看一下图,体会下我的内心阴影面积。。最后...

2018-06-11 00:27:42 622

原创 基于Android studio 的rpg游戏大地图的绘制

    今天开始写第一篇博客,好激动呢。衷心希望自己能坚持下去。    不说闲话了,我们马上开始。最近一直在做一个基于Android studio的rpg2D角色扮演游戏,虽然说这个游戏已经烂大街了, 其中的逻辑也是有了很多准确的简便的解释,不过真正做起来还是感觉到深深的难度,不过毕竟是刚刚接触Android studio, 对其中的界面结构和布局都不了解, 进度稍慢也是可以理解的。今天主要做的事...

2018-06-09 23:24:38 2743

空空如也

空空如也

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

TA关注的人

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