自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (笔记)Android四大组件之Service

service是Android中实现程序后台运行的解决方案。不依赖与任何用户界面。生命周期

2020-08-29 12:26:57 254

原创 (笔记)Android四大组件之Activity

1.什么是ActivityActivity是一种可以包含用户界面的组件,主要用于和用户进行交互。2.Activity的生命周期Android是通过任务来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也叫做返回栈(Back Stack)。每当启动一个新的Activity,就会在返回栈中入栈,并处于栈顶的位置。每当我们销毁一个Activity时,在栈顶的Activity就会出栈,这时前一个入栈的就会重新在栈顶出现。系统会显示处于栈顶的Activity给用户。每

2020-07-20 22:56:01 329

原创 常用的git指令

1.在当前目录下新建一个git代码库先cd 选定目录,然后 $ git init2. $ ls -a 查询该目录下的全部文件3. $ git add . 将该目录下的全部文件添加到暂存区 $ git add [filename]将指定文件放到暂存区4. $ gir commit -m "注释消息“ 将暂存区的数据提交到仓库区5. $ git remote add origin 自己远程库的地址 与远程仓库进行关联6. $ git pull -...

2020-07-17 17:10:11 246

原创 Synchronized和ReentrantLock区别

Synchronized和ReentrantLock区别相似点:都是加锁方式同步,并且都是阻塞式的同步,即一个线程获取了对象锁,进入同步块,其他访问该同步块的线程必须阻塞在同步块的外面等待,而线程进行阻塞和唤醒的代价是比较高的,功能区别:synchornized是Java语言的关键字,是原生语法层面的互斥,需要JVM实现,而ReentrantLock是JDK1.5以后提供的API层...

2019-08-25 22:30:08 263

原创 Java垃圾回收

在进行垃圾回收之前需要考虑三个问题:1.哪种内存需要回收。2.什么时候回收。3.怎么回收判断对象是否存活1.引用计数法 给对象增加一个引用计数器,每当一个地方引用它,计数器就加1,当引用失效时,计数器减1.任何时刻计数为0的对象就是不能再被使用,即对象已死。 引用计数法实现简单,判断效率也比较高,在大部分情况下都是一个不错的算法。但是在主流的JVM中没有选用引用...

2019-08-24 22:35:53 126

原创 约瑟夫环问题解决

问题描述:编号为1-N的N个士兵围坐在一起形成一个圈,从编号为1的士兵依次开始报数(1,2,3..依次报),数到m的士兵会被杀死出列,之后的士兵再从1开始报数。直到最后剩下一士兵。求这个士兵的编号。方法一:数组第一次做这个题的时候,第一反应就是用数组来做。创建一个boolean数组,用true表示没出列,false表示出列,定义一个计数器,遍历数组,当加到与m相等时,就将true变为fal...

2019-08-19 09:46:01 265

原创 递归列出指定目录下的文件和文件的拷贝

文件的遍历:public class Test { public static void main(String[] args) { File file = new File("D:/"); listAllFiles(file); } public static void listAllFiles(File file){ ...

2019-08-15 22:49:17 137

原创 从百万数据中找到第K大的数并且时间复杂度为O(N)

假设数组为array,求第K大的元素。注意:因为快排排序后,数组是由小到大的,所以第K大的元素为倒数第十个即 array[array.length-K+1];所以我们要令k =array.length-K+1思路:利用快排的分治思想,先对数组进行一趟快排,将数组分为三个区,(0,par),(par),(par+1,array.length-1)。判断k与par的大小,如果par +1&...

2019-08-06 18:24:38 1292

原创 根据中序遍历和后序遍历序列构造二叉树

思路:从后往前遍历后序数组,找到根节点,然后,构建右子树,最后构建左子树class Solution { class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } private in...

2019-08-03 19:54:31 789

原创 二叉树的非递归遍历(前序,中序,后序,层序)

废话不多说,直接上代码。有问题欢迎提出前序遍历非递归void binaryTreePrevOrderNonR(TreeNode root){ if(root == null ){ return ; } Stack<TreeNode> stack = new Stack<>(); ...

2019-07-30 17:06:14 135

原创 全排列(给定一个没有重复数字的序列,返回其所有可能的全排列。)

给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]递归的时候需要注意不能添加重复的元素,需要添加判断。还有就是list集合为引用数据类型,需要创建临时集合接收。代码挺好理解的,有啥问题欢迎提出。import java.util...

2019-07-29 23:43:31 5129

原创 常见排序之堆排序

堆排序堆排序(Heapsort)指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。 小根堆 大根堆 ...

2019-07-26 22:56:25 160

原创 百万数据处理,找到前K大的数字(TopK问题)。

假如你有一组数据,现在让你求出前K大的数字。有的人说,直接排序不就Ok了。那么我的问题来了。如果这个数据很多呢,并且现在给你分配的内存很小,不足以让你开辟足够大的空间去存储数组。我们该怎么办。这个时候我们就可以用堆来实现。比如我们现在有300000个随机数字,现在让你找出来前100大的数字。思路:我们可以建立一个容量为100堆,先将前100个数据存入。将堆变成小根堆,接下来每次从随...

2019-07-25 23:02:18 841

原创 背包问题

做题之前先说一下背包问题包的容量为14 有6个东西 v:代表价值 w:代表重量,我们要在包能承受的重量下,拿到最大价值。这个问题可以理解为当前的这个东西,我到底拿不拿,如果拿,我的包承重是否满足和我的价值能否最大,如果不拿,我的利益能否最大。如图所示:i :拿前i个 j:所能拿的重量 红色代表拿,黑色代表不拿,黑红的代表拿可以得到这个数不拿也可以得到。T(i...

2019-07-23 11:50:24 265

原创 求和--牛客

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来输入描述:每个测试输入包含2个整数,n和m输出描述:按每个组合的字典序排列输出,每行输出一种组合示例1输入5 5输出1 42 35import java.util.ArrayList;import java.util.Scanner;...

2019-07-22 22:48:29 271

原创 字符串加解密--牛客

1、对输入的字符串进行加解密,并输出。2加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。3、解密方法为加密的逆过程。接口描述:实现接口,每个接口实现1个基本操作:void Encrypt (char aucPassword[...

2019-07-20 22:42:16 616

原创 坐标移动--牛客

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。下面是一个简单的例子 如:A10;S20;W10...

2019-07-19 23:50:51 233

原创 回文串(给定一个字符串,问是否能通过添加一个字母将其变为回文串)

给定一个字符串,问是否能通过添加一个字母将其变为回文串。输入描述:一行一个由小写字母构成的字符串,字符串长度小于等于10。输出描述:输出答案(YES\NO).示例1输入coco输出YES结题思路:如果一个字符串能通过添加一个字母变成回文串,那么它去掉一个字母也就可以变成会文串,于是我们就可以将字符串的每位都去掉一次去判断,如果一次回文串都没出现,说明添加一个字母也不能构成...

2019-07-17 22:05:21 1665 1

原创 ArrayList介绍和其相关常用方法总结

ArrayList:ArrayList是基于数组实现的List类,完全支持List接口的全部功能,支持快速访问,复制和序列化。底层是基于数组实现容量大小动态变化,允许null值存在。常识:初始化策略:Lazy-Load(懒加载策略),只有当Array对象第一次被使用(add)时,内部的数组才会初始化为长度为10的数组扩容:每次扩容为原先数组的1.5倍线程安全性:线程不安全我常用...

2019-07-15 21:49:07 204

原创 Java中实现线程"锁"的方式:synchronized与Lock

synchronized是Java的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。JDK1.5以后引入了自旋锁、锁粗化、轻量级锁,偏向锁来有优化关键字的性能。Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现;synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死...

2019-07-13 22:45:27 160

原创 简单错误记录(简单易懂)--牛客

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)3.输入的文件可能带路径,记录文件名...

2019-07-08 22:33:35 346

原创 大整数排序--牛客

对N个长度最长可达到1000的数进行排序。输入描述:输入第一行为一个整数N,(1<=N<=100)。接下来的N行每行有一个数,数的长度范围为1<=len<=1000。每个数都是一个正数,并且保证不包含前缀零。输出描述:可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。示例1输入3111111111111...

2019-07-06 20:23:12 148

原创 数字和为sum的方法数--牛客

给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。输入描述:输入为两行:第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)第二行为n个正整数A[i](32位整数),以空格隔开。输出描述:出所求的方案数示例1输入5 155 5 10 ...

2019-07-05 22:59:33 415

原创 密码验证合格程序--牛客

密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度超2的子串重复说明:长度超过2的子串输入描述:一组或多组长度超过2的子符串。每组占一行输出描述:如果符合要求输出:OK,否则输出NG示例1输入021Abc9000021Abc9Abc1021ABC9000021$bc9000输出OKNGNGOK解题思路:先判...

2019-07-04 22:57:48 523

原创 小明的字符串--牛客

小明同学需要对一个长度为 N 的字符串进行处理,他需要按照要求执行若干步骤,每个步骤都均为下面 2 种操作中的一种,2 种操作如下:TYPE 1. 从字符串结尾开始算起,将第 X 个字符之前的字符移动到字符串末尾TYPE 2. 输出字符串索引为 X 的字符小明尝试了很久没能完成,你可以帮他解决这个问题吗?输入描述:第一行,包含两个整数,字符串的长度 N 和操作次数T;第二行为要操作...

2019-07-03 23:21:20 497

原创 翻转字符串里的单词(给定一个字符串,逐个翻转字符串中的每个单词。)--LeetCode

给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出:"ex...

2019-07-02 23:15:58 2866

原创 人民币转换--牛客

1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“...

2019-07-01 23:02:28 543

原创 比较版本号--LeetCode

比较两个版本号 version1和 version2。如果version1>version2返回1,如果version1<version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和. 字符。. 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假...

2019-06-30 19:18:08 333 1

原创 括号配对问题--牛客

输入描述:给定一个字符串S,请检查该字符串的括号是否配对,只含有"[", "]", "(", ")"输出描述:配对,返回true不配对,返回false示例1输入abcd(])[efg输出false解题思路:用栈来解题,遍历字符串,遇到(、[ 入栈,如果遇到 ‘)’、‘ ] ’,查看栈顶元素是否配对(),[ ]。如果配对就出栈,否则就报错。还有一点,遍历结束后,还要检查栈是否...

2019-06-29 23:20:45 527

原创 优雅的点--牛客

题目描述小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。例如:半径的平方如果为25优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。输入描述:输入为一个整数,即为圆半径的平方,范围在32位int范围...

2019-06-28 23:16:19 108

原创 最大间隔--牛客

题目描述给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?输入描述:第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。输出描述:输出答案。...

2019-06-27 22:52:45 241

原创 罪犯转移--牛客

C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式(一组测试用例可能包含多组数据,请注意处理)?输入描述:第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值a...

2019-06-26 23:30:01 194

原创 兔子藏洞--牛客

题目描述一只兔子藏身于20个圆形排列的洞中(洞从1开始编号),一只狼从x号洞开始找,下次隔一个洞找(即在x+2号洞找),在下次个两个洞找(即在x+5号洞找),它找了n次仍然没有找到。问兔子可能在那些洞中。输入描述:输入有多组数据,每组数据一行两个整数分别为x和n(x <= 20,n <= 100000)输出描述:每组数据一行按从小到大的顺序输出兔子可能在的洞,数字之间用空格...

2019-06-25 22:55:43 169

原创 最高分是多少--牛客

老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i...

2019-06-17 22:56:55 315

原创 数字分类--牛客

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入描述:每个输入包含1个测试用例。每个测试用例先给出一个...

2019-06-15 23:36:18 113

原创 发奖金--牛客

狐进行了一次黑客马拉松大赛,全公司一共分为了N个组,每组一个房间排成一排开始比赛,比赛结束后没有公布成绩,但是每个组能够看到自己相邻的两个组里比自己成绩低的组的成绩,比赛结束之后要发奖金,以1w为单位,每个组都至少会发1w的奖金,另外,如果一个组发现自己的奖金没有高于比自己成绩低的组发的奖金,就会不满意,作为比赛的组织方,根据成绩计算出至少需要发多少奖金才能让所有的组满意。输入描述:...

2019-06-11 23:46:57 475

原创 成绩排序--牛客

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack 70Tom 70smith 67从低到高smith 67Tom...

2019-06-10 23:10:11 213

原创 回文素数

如果一个整数只能被1和自己整除,就称这个数是素数。 如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666 如果一个数字既是素数也是回文数,就称这个数是回文素数 牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。 输入描述: 输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)...

2019-06-08 23:40:45 928

原创 洗牌--牛客

洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着...

2019-06-06 23:27:32 250

原创 组成最小的数

给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入描述:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一...

2019-06-04 23:12:59 1407

空空如也

空空如也

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

TA关注的人

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