自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gradle脚本实现不同环境配置打包

gradle脚本实现不同环境配置打包在build.gradle中最下面添加以下脚本//代码中的xx表示是哪个环境,比如xx能改成dev环境或者其他环境jar.doFirst { if (!project.hasProperty('xx')) return def list = [] new File('build/resources/main/application.yml').withReader('UTF-8') { reader -> reader.

2021-07-06 14:20:56 1018

原创 Java剑指Offer:11.二进制中1的个数

11.二进制种1的个数题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例1输入10返回值2思路:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是101

2020-11-29 20:03:15 78

原创 Java剑指Offer:10.矩形覆盖

10.矩形覆盖题目描述我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:示例1.输入4返回值5思路:假设:n块矩形有f(n)种覆盖方法。进行逆向分析,要完成最后的搭建有两种可能。通过n-1个矩形,在添加一个矩形,能完成覆盖通过n-2个矩形,在添加两个矩形,能完成覆盖故f(n) = f(n-1) + f(n-2),还是一个斐波那契数列,因此本题也

2020-11-22 14:04:41 78

原创 Java剑指Offfer:9.变态跳台阶

9.变态跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。示例:输入3返回值4思路:像这种一个问题,能由子问题来解决的,通常使用动态规划的思想。定义状态:int dp[target.length + 1] ,dp[i] 表示跳到第 i 个台阶,有多少种方法。状态转移方程:dp[i] = dp[i-1]+dp[i-2]+~~~+dp[0],因为到第 i 层台阶,可以从第0层跳 i 层台阶到达,从第1层跳n-1层

2020-11-21 21:51:21 93

原创 Java剑指Offer:8.跳台阶

8.跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例输入1返回值1 输入4返回值5思路:本题思路和斐波那契数列思路一样,都是使用动态规划来解决。定义状态:int dp[target.length+1],dp[i]表示到第 i 个台阶,可以有多少种跳法状态转移方程:dp[i] = dp[i-1] + dp[i-2],因为要到达第 i 台阶,有2种方法:能通过第 i-1 台阶,跳1级

2020-11-21 21:07:27 64

原创 Java剑指Offer:7.斐波那契数列

7.斐波那契数列思路:斐波那契数列的公式:f(n) = f(n-1) + f(n-2),其中f(0) = 0,f(1) = 1。使用动态规划实现斐波那契数列:确定状态:int[] dp,使用int[]数组来定义状态,dp[i]表示的就是上面的f(i) 。状态转移方程:dp[i] = dp[i-1] + dp[i-2],直接套用斐波那契数列的公式即可初始化:dp[0] = 0,dp[1] = 1,同上代码实现:public class Solution { //使用动态规划解答,

2020-11-21 20:37:24 115

原创 Java剑指Offer:6.旋转数组中的最小数字

6.旋转数组的最小数字思路:该题主要考察对二分查找的理解和应用。设置左右边界,left = 0,right = arr.length - 1设置while循环的判定条件,left < right先判断当前数组或者子数组,是否为非递减数组,比如 1,1,3,4,5,5这种就是非递减数组,如果是非递减数组,说明当前子数组就是旋转后的那一部分升序子数组,arr[left]就是我们所要求的结果。比如3,4,5,1,2。如果left = 3,right = 4即此时,子数组为1,2,为非递减数组

2020-11-20 20:41:58 80

原创 Java剑指Offer:5.栈实现队列

5.用栈实现队列思路:栈:先进后出队列:先进先出分配这2个栈的使用:stack1存放数据,stack2作为中转栈,用来中转数据。代码实现:import java.util.Stack;//栈实现双向队列public class Solution5 { //stack1 主要用于存放数据 Stack<Integer> stack1 = new Stack<Integer>(); //stack2 主要用于中转 Stack<I

2020-11-19 21:39:08 71

原创 Java剑指Offer:4.由前序中序遍历重构二叉树

4.前中序遍历还原二叉树思路:首先要理解如何根据二叉树的前序遍历和中序遍历还原一棵二叉树。具体还原步骤可分为7步,根据下图来讲解具体的实现步骤:1、先找到前序遍历的第一个节点,也就是根节点root2、在中序遍历中找到root节点的位置3、中序遍历中,root节点的没用到的左边节点,为当前root节点的左子树4、中序遍历中,root节点的没用到的右边节点,为当前root节点的右子树5、回到前序遍历,根据3步骤中找到的左子树,在前序遍历中画出当前root节点的左子树6、回到前序遍历,根据4

2020-11-18 21:04:44 95

原创 Java剑指Offer:3.从头到尾打印链表

3.从尾到头打印链表思路1:原地反转链表之后进行顺序遍历,反转链表详解请看之前我的博客一次遍历反转链表代码实现:import java.util.ArrayList;//反转链表之后进行顺序遍历public class Solution3 { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if (listNode == null) return new Arra

2020-11-17 15:02:56 115

原创 一次遍历反转链表详解

反转链表反转链表是面试中经常碰到的手撕算法题,通常要求在一次遍历后,得到反转之后的链表,下面通过3副图片和具体实现的代码,来详细地介绍,如何一次遍历反转链表。第一步:新建dummy节点,指向链表的头部,这个节点的作用就是一直指向链表的头节点,最终返回链表的时候直接返回dummy.next就可以了。第二步: 通过while循环,不断向后移动链表的头节点listNode,并把listNode的下一个节点移动到链表的头部,来形成反转链表,直到listNode.next == null 为止,就形成了反转之

2020-11-17 14:50:19 291

原创 Java剑指Offer:2.替换空格

2.替换空格思路:本题采用新建字符串加双指针的解法:1.设置双指针下标 left = 0,right = 0,新建字符串sb用来保存替换后的字符串2.设置while循环判定条件 right < str.length,主要是看 str.charAt(right) 是否为空格,因此右指针right 要小于str.length在循环中分为2种条件:如果 str.charAt(right) == ' ' ,又可细分为2种情况:如果 此时左右指针相等,left == right,比如:"

2020-11-16 15:40:50 59

原创 Java剑指Offer:1.二维数组中的查找

1.二维数组中的查找思路1:使用暴力算法依次遍历进行比较,但是时间复杂度为O(n²),比较高。//暴力查找二维数组中的目标数public class Solution { //找到目标数方法 public boolean Find(int target, int [][] array) { if (array == null || array[0].length == 0) return false; for (int[] arr:array) {

2020-11-15 14:05:22 65

空空如也

空空如也

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

TA关注的人

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