- 博客(56)
- 收藏
- 关注
原创 查找
word-ladder题目描述题目描述给定两个单词(初始单词和目标单词)和一个单词字典,请找出所有的从初始单词到目标单词的最短转换序列的长度:每一次转换只能改变一个单词每一个中间词都必须存在单词字典当中例如:给定的初始单词start=“hit”,目标单词end =“cog”。单词字典dict =[“hot”,“dot”,“dog”,“lot”,“log”]一个最短的转换序列为"...
2020-04-14 10:38:14
347
原创 数组
longest-consecutive-sequence题目描述给定一个无序的整数类型数组,求最长的连续元素序列的长度。例如:给出的数组为[100, 4, 200, 1, 3, 2],最长的连续元素序列为[1, 2, 3, 4]. 返回这个序列的长度:4你需要给出时间复杂度在O(n)之内的算法题目解析题目要求在一个无序的数组中最长的有序数组的长度,并且时间复杂度为O(n)。所以我...
2020-04-13 09:52:27
171
原创 树
sum-root-to-leaf-numbers题目描述题目描述给定一个仅包含数字0-9的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1->2->3,那么这条路径就用123来代替。找出根节点到叶子节点的所有路径表示的数字之和例如:1↵ / ↵ 2 3根节点到叶子节点的路径1->2用数字12代替根节点到叶子...
2020-04-13 09:42:24
210
原创 回文字符串
回文字符串题目描述给定一个字符串s,分割s使得s的每一个子串都是回文串返回所有的回文分割结果。(注意:返回结果的顺序需要和输入字符串中的字母顺序一致。)例如:给定字符串s=“aab”,返回[↵ [“aa”,“b”],↵ [“a”,“a”,“b”]↵ ]题目解析题目要的得到一个字符串所有的回文子字符串的列表,需要的到所有的解采用深度优先来查找原题地址代码impor...
2020-04-09 10:59:50
205
原创 图
图题目描述本题要求复制一个无向图,图中每个节点都包含一个标签和它的邻居列表我们无向图用以下的方法序列化:节点的标签是互不相同的,我们使用“#”作为节点之间的分隔符,使用“,”作为节点标签和节点的节点邻居的分隔符。例如:现在有一个序列化的无向图{0,1,2#1,2#2,2}.这个无向图一共有3个节点,因此序列被#分隔成三部分第一个节点的标签是0,节点0和节点1,节点2之间有边第二个...
2020-04-09 10:51:49
161
原创 gas-station
gas-station题目描述环形路上有n个加油站,第i个加油站的汽油量是gas[i],你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回-1。注意:答案保证唯一。题目解析题目要求找到一个能保证环形的起点,则...
2020-04-08 10:06:22
226
原创 candy
candy题目描述有N个小朋友站在一排,每个小朋友都有一个评分,你现在要按以下的规则给孩子们分糖果:每个小朋友至少要分得一颗糖果,分数高的小朋友要他比旁边得分低的小朋友分得的糖果多你最少要分发多少颗糖果?题目解析题目要求每个小孩至少一颗,相邻的小孩分数高的比分数低的分的多,并且要最少分配糖果,所以我们可以分三步分配:1、每个小孩分配一颗2、从左到有依次遍历,相邻的分数高的比分数低的...
2020-04-08 09:56:46
395
原创 max-points-on-a-line
在一条线上最多的点题目描述对于给定的n个位于同一二维平面上的点,求最多能有多少个点位于同一直线上题目解析首先我们知道三个点在一条线上,分为两种情况:一、其中两个点重合二、两两之间的斜率相等原题地址代码public class Solution { public int maxPoints(Point[] points) { if(points==null|...
2020-04-01 11:26:21
174
原创 java知识点总结
1.Java三大特性三大特性:继承 ,封装,多态。封装:是指属性私有化,使用者可通过get ,set等方法来访问属性,隐藏具体属性和实现细节,仅仅对外开放接口,控制车程序中属性的访问级别。封装的目的:增加安全性和简化编程,使用者不必在意具体实现细节,而只通过外部接口即可访问类的成员。继承:是指将相同的方法和成员提取出来,新建一个类继承的目的:代码复用多态:多态又分为设计时多态和运行时多...
2020-01-10 16:15:20
135
原创 扑克牌顺子
扑克牌顺子题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...
2020-01-10 10:09:10
178
原创 翻转单词顺序列
翻转单词顺序列题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?题目解析...
2020-01-09 14:47:35
150
原创 左旋转字符串
左旋转字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。题目解析题目要求将一个字符串循环移位输出,可以有两种方式,第一种,两个相同字符串拼接,然后截取一个字符串的长...
2020-01-09 11:18:54
133
原创 和为S的两个数字
和为S的两个数字题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述输出两个数,小的先输出。题目解析首先题目中给出的是递增排序的数组,所以我们可以使用两边夹逼的反法去得到和正好是s的数,题目还要求如果是多对数字,需要的到乘积是最小的那一对。我们假设 最左端的是 a ,最右端的是b,那么可以得到相...
2020-01-08 10:29:35
127
原创 和为S的连续正数序列
和为S的连续正数序列题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?输出描述输出所有和为S的连续正数序列。序列...
2020-01-07 10:45:33
158
原创 数组中只出现一次的数字
数组中只出现一次的数字题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。题目解析由题目可以得出 ,题目有两个数字只出现一次,其他的数字出现的次数都是两次,所以我们可以是Map键值对去存放以及去除重复出现的数字。代码public class Solution { public void FindNumsAppearOnce(int...
2020-01-06 16:24:34
106
原创 平衡二叉树
平衡二叉树题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。题目解析题目要求判断一棵树是否是平衡二叉树,首先我们需要了解平衡二叉树的数据结构如下,它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。所以我们可以使用递归方式去得到左右子树的高度如下代码public class Solution { public boolean IsBa...
2020-01-03 14:40:59
120
原创 二叉树的深度
二叉树的深度题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。题目解析题目要求求一棵二叉树的深度,首先我们知道二叉树的数据结构,具有父节点,一个左子节点,一个又子节点,我们可以使用递归算法分别求出左子节点的深度和右子节点的深度,最后比较两个深度的大小。代码public class Solution { ...
2019-12-31 09:49:45
180
原创 数字在排序数组中出现的次数
数字在排序数组中出现的次数题目描述统计一个数字在排序数组中出现的次数。题目解析题目要求统计一个数字在排序数组中出现的次数,我们可以使用两种方法一、遍历统计二、使用二分法查找当前数字的开始位置和结尾位置,计算两个位置差代码public class Solution { public int GetNumberOfK(int [] array , int k) { ...
2019-12-30 13:59:25
133
原创 两个链表的第一个公共结点
两个链表的第一个公共结点题目描述输入两个链表,找出它们的第一个公共结点。题目解析题目要求找出两个链表的公共节点,如果有公共节点则证明两个链表有共同的尾部,因为从公共节点之后的next都相同,那么只需要判断两个链表的长度,长的链表先走,走到长度相等的时候,从 当前开始两个链表一起向后走,直到找到第一个相同的节点。代码public class Solution { public L...
2019-12-26 10:41:12
117
原创 第一个只出现一次的字符
第一个只出现一次的字符题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)题目解析题目要求在字符串中找出第一个只出现一次的字符,并返回位置,我们可以分以下两步来完成:第一步:遍历分割整个字符串,用Map存放字符和出现的次数。第二步:遍历整个字符一一与取出存放字符Map相应...
2019-12-19 10:39:31
138
原创 丑数
丑数题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。题目解析首先从丑数的定义可知,一个丑数的因子只有2,3,5,那么丑数p= 2x3y3*z。 可以这样理解一个丑数一定是由另一个丑数乘以2或者乘以3或者乘以5得到的。代码public class ...
2019-12-18 11:18:21
90
原创 把数组排成最小的数
把数组排成最小的数题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题目解析题目要求需要判断拼接后的最小数,所以可以分两步来完成,第一步排序(拼接最小排序)第二步拼接。例如 s1,s2两个数如果要排成拼接最小排序,我们可以先拼接 成 s1+s2和 s2+ ...
2019-12-17 10:38:30
93
原创 Android中会引起ANR的情况
Andoid中会引起ANR的情况时间规定:Activity----->5秒Broadcast----->10秒Service----->20秒会报ANR,都是在主线程中运行的,对象都是在主线程中new出来的,其实都是间接引起主线程的ANR。...
2019-12-13 17:10:29
288
1
原创 连续子数组的最大和
连续子数组的最大和题目描述给一个数组,返回它的最大连续子序列的和。题目解析题目要求返回一个数组的最大连续的序列的和,其实就是遍历数组每一个位置到数组中当前位置后的连续的路径,每条路径的和都是一个连续的序列和,例如数组 123,它有的连续序列有 1,12,123,2,23,3。代码public class Solution { public int FindGreatestSum...
2019-12-13 16:32:20
157
原创 Android 夜间模式的实现
Android夜间模式官方api实现(AppCompatDelegate)注意:需要 com.android.support:appcompat 23.2及以上的版本主要由以下几步:第一步、增加夜间模式的资源文件,如下图所示 Drawable-night, mipmap-night,values-night夜间模式与日间模式的里的命名必须一样,值可以不同,如下图 col...
2019-12-11 15:31:42
844
原创 最小的K个数
最小的K个数题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。题目解析题目给出一个整数数组,和需要得到最小k位数,首先我们需要将这个数组排序,然后去前k位的数。再这里我使用的事冒泡排序法:冒泡排序法的原理就是通过遍历的方法,一趟一趟的遍历,每一趟找到一个当前未排序的数组中最小的数,放在已排序的数组的尾部。代...
2019-12-11 10:11:45
152
原创 数组中出现次数超过一半的数字
数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目解析题目中要求找到某一个超过数组长度一半的数字,即是需要我们找到一个数字的在数组中出现的次数是在当前数组中出现次数最多的。所以我们可以分以下几...
2019-12-10 10:00:27
100
原创 Android客户端接入微信支付步骤
Android客户端接入微信支付步骤1 接入微信的SDK去微信开发者平台下载sdk或者自动集成2 调用微信SDK发起支付以下需要注意的几点1、首先调用后台的统一下单接口,下完订单后客户端再调用微信支付(NoticePayOrderBean 是服务器端下单后返回订单数据)。2、微信支付sdk发起支付必须有以下7个参数appId,partnerId ,prepayId ,packageVa...
2019-12-09 14:50:46
766
原创 CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现渐变色导航栏时坑
CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现渐变色导航栏时坑问题描述与解决方法1.Toolbar与屏幕左右有间隔解决方法主要加入以下三句,就可以解决间隔问题app:contentInsetLeft=“0dp”app:contentInsetStart=“0dp”app:contentInsetEnd...
2019-12-09 11:50:16
10193
原创 字符串的排列
字符串的排列题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。题目解析根据题目要求需要的到一个字符串中所有的字符排序第一步、遍历出所有可能出现在第一个位置的字符(即:依次将第一个字符同后面所有字符交换);第二步、 固定第一个字符,求后面字符的排列(即:在第...
2019-12-09 11:22:51
118
原创 二叉搜索树与双向链表
二叉搜索树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题目解析题目要求将二叉树转换成一个排序的双向链表。首先我们知道搜索二叉树的数据结构是 左子节点从上到下依次递减,右子节点从上到下依次递增,可以分两步完成第一步:利用递归 / 非递归中序遍历,存在一个数组 or 一个队列第二部:更新队列里的结点的 ...
2019-12-06 11:30:01
100
原创 复杂链表的复制
复杂链表的复制题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题目解析题目需要复制一个链表,并且返回新链表的head,首先我们知道当前链表的数据结构是,当前节点有节点值以及两个指针,一个指向下一个节点的指针以及一个指向...
2019-12-05 11:12:34
88
原创 二叉树中和为某一值的路径
二叉树中和为某一值的路径题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)题目解析从题目可以了解到,需要从一个二叉树中找到等于输入值的所有的路径,路径的定义为从根节点开始往下一直到叶节点(即先序遍历的方式)代码public cl...
2019-12-04 10:38:37
89
原创 二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。题目解析题目要求判断一个数组是不是某二叉树的后续遍历的结果,首先我们知道二叉搜索树的数据结构是,左子节点的值小于父节点的值,右子节点的值大于父节点的值。并且二叉树的后续遍历的顺序是先左子再右子最后再父节点。所以我们可以把当...
2019-12-03 10:28:18
153
原创 从上往下打印二叉树
从上往下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。题目解析从题目可以看出是先序遍历方式,先遍历父节点再遍历左子节点最后再遍历右子节点。代码public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { //先需...
2019-12-02 10:06:43
93
原创 栈的压入、弹出序列
栈的压入、弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的题目分析根据题目首先我们可以得到两个序列,一个压入序列,一个弹出序...
2019-11-27 10:22:31
107
原创 包含min函数的栈
包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。题目解析题目要求是得到栈中所含的最小元素并且时间复杂度为O(1),表示一取就是当前栈的最小最小元素,我们可以考虑用两个栈来存放数据,一个是正常的元素栈,一个是最小元素栈。放入的规则是,正常元素栈每次都直接放入栈顶,最小元素栈则需要比较当前值比最小元素栈的栈顶的数据...
2019-11-26 10:07:31
95
原创 顺时针打印矩阵
顺时针打印矩阵题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题目解析题目要求我们顺时针的输出一个矩阵,首先我们可以先判断一个矩阵能够顺时针输出的圈数,首先判断是...
2019-11-25 11:43:49
106
原创 二叉树的镜像
二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树题目解析题目要求我们将一颗二叉树变化为源二叉树。通过图片描述我们可以知道,所谓的源二叉树其实就是将一个二叉树所有的左右子交换后的二叉树 。所以我们可以用递归的方式一层一层的从上到下的交换左右子。代码public class Solution { public void Mi...
2019-11-22 09:45:47
114
原创 树的子结构
树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目解析首先我们知道二叉树的数据结构为父节点,左子节点,右子节点,题目要求判断 B是不是A的子结构,则需要我们证明A的某一部分是不是跟B相同(每一个节点的值都相同)。所以我们需要从A的父节点开始从上到下依次判断B是不是与某一部分重合。代码public class Solution...
2019-11-21 11:08:31
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅