自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:暴力解法就是对所有的排列种类进行比较,这样的复杂度为n!其实我们可以将这个大问题转化为一个个小问题,若对两个数做连接操作,所得结果大的连接顺序表明,该顺序中的第一个连接数应该排在第二个连接数之前,这样,可以对整个连接数数组做一遍快排,就能确定连接数排列顺序最优解,复杂度只要nlogn。考虑到连接数都是int类型

2020-07-30 16:24:27 130

原创 连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)思路1:若遍历位置之前求得的和sum已小于零,则没必要在它

2020-07-30 16:24:19 98

原创 数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。public class Solution { public int GetNumberOfK(int [] array , int k) { int len=array.length; int l=0,r=len-1; int num=0; while(l<=r){ int mid=l+(r-l)/2; if(k>array[mid]){

2020-07-27 16:25:38 116

原创 数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。容易想到的思路1:可以以数字为键,数字出现的次数为值建立hash表,返回只出现一次的数。容易想到的思路2:可以先排序整个数组,当一个数与前后都不同的时候就是只出现一次的数。public class Solution { public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { Arrays.so

2020-07-27 16:00:58 133

原创 左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!思路:翻转两次循环左移k位必然会将字符串分成两部分,前半部分(即:k%n个字符数)与后半部分。第一次:将字符串分成前后两部分,分别翻转;第二次:将整个字符串翻转.实质同:先整体翻转再局部翻转.pub

2020-07-16 10:43:27 112

原创 扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现

2020-07-15 11:17:24 180

原创 平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树错误做法,对平衡二叉树的理解出现了偏差,平衡二叉树判断其是否平衡,是判断每个中间节点的左右子树高度差是否小于等于1,而不是对所有叶子节点的位置作比较.public class Solution { int max_depth=-1,min_depth=10000; public boolean IsBalanced_Solution(TreeNode root) {

2020-07-15 10:05:04 256 1

原创 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。例如,我们可以把一个只有根节点为1的二叉树序列化为"1,",然后通过自己

2020-07-15 09:12:34 224

原创 二叉搜索树的第k个节点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。import java.util.ArrayList;public class Solution { ArrayList<TreeNode> al=new ArrayList<>(); TreeNode KthNode(TreeNode pRoot, int k){ if(pRoot==null||k&lt

2020-07-13 21:43:59 143

原创 按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路1:先全都存储在一个临时列表中,并记录每层个数,再根据层数奇偶性确定从左往右放还是从右往左放.但是:在海量数据时,这样效率太低了。public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {

2020-07-13 11:22:42 129

原创 对称的二叉树

题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。求镜像时要注意,不能简单通过将pRoot赋值给一个新的结点,然后通过新的结点获取镜像,因为这样会使得原来的二叉树也变为了它的镜像.public class Solution { boolean isSymmetrical(TreeNode pRoot) { if(pRoot==null)return true;//注意点:当根为空时也任务是对称的

2020-07-12 10:58:11 164

原创 二叉树中和为某一值的路径

题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。import java.util.ArrayList;import java.util.Stack;public class Solution { ArrayList<ArrayList<Integer>> res=new ArrayList<>(); int sum=0; St

2020-07-12 10:20:40 138

原创 疯狂过山车

题目描述今天牛牛去游乐园玩过山车项目,他觉得过山车在上坡下坡的过程是非常刺激的,回到家之后就受到启发,想到了一个问题。如果把整个过山车的轨道当作是一个长度为n的数组num,那么在过山车上坡时数组中的值是呈现递增趋势的,到了最高点以后,数组中的值呈现递减的趋势,牛牛把符合这样先增后减规律的数组定义为金字塔数组,请你帮牛牛在整个num数组中找出长度最长的金字塔数组,如果金字塔数组不存在,请输出0。示例1:输入4,[1,2,3,1]输出4示例2:输入5,[1,5,3,3,1]输出3备注:

2020-07-11 22:35:39 264

原创 魔法数字

题目描述题意:一天,牛妹找牛牛做一个游戏,牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的。操作共有三种,如下:1.在当前数字的基础上加一,如:4转化为52.在当前数字的基础上减一,如:4转化为33.将当前数字变成它的平方,如:4转化为16你能帮牛牛解决这个问题吗?输入:给定n,m,分别表示牛牛和牛妹的数字。输出:返回最少需要的操作数。示例1输入:3,10输出:2备注:(1≤n,m≤1000)思路:广搜法(bfs)注意

2020-07-10 21:29:38 452

原创 MySQL5与MySQL8的配置区别

首先毋庸置疑maven依赖中将版本改成与数据库对应的版本重点:1、druid数据源的driver-class-name配置MySQL5: driver-class-name: com.mysql.jdbc.DriverMySQL8: driver-class-name: com.mysql.cj.jdbc.Driver2、url配置MySQL5:url: jdbc:mysql://localhost:3306/数据库名MySQL8:url: jdbc:mysql://localhost:330

2020-07-08 22:57:40 1126 2

转载 idea中使用git,push出现Empty repository问题

idea中点击push后,如果发现,master-> Empty repository,不存在仓库的问题,这时候我们打开git bash,输入cd 刚才工程的路径比如 cd d:\***然后输入git commit -m "Initial Commit"初始化,等出现代码段提示后即可关闭而后点击push,会发现push已经出现define remote的字样...

2020-07-03 14:28:05 7438

原创 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。由于本题要求所有结点都按序存放在一个集合中,而不是每层结点分开放,因此无法使用递归来做。可以通过队列,并且本题用队列做也无需记录当前遍历层结点数以及下一层结点数。import java.util.ArrayList;import java.util.ArrayDeque;public class Solution { public ArrayList<Integer> PrintFromTopToBottom(Tr

2020-07-01 08:54:13 130

空空如也

空空如也

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

TA关注的人

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