自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smart_ferry的博客

笨鸟的自学之路

  • 博客(32)
  • 收藏
  • 关注

原创 leetcode----71. Simplify Path

链接:https://leetcode.com/problems/simplify-path/大意:简化Unix路径(路径以全路径形式给出)。例子:思路:栈思想。首先,对给定的全路径字符串path以"/"分割为字符串数组。创建一个顺序栈(顺序栈比链式栈速度更快),依次对比字符串数组中的每个元素,判断当前元素是该入栈还是栈顶元素弹出还是栈不变继续查看下一个字符串。可有...

2019-03-31 13:42:23 113

原创 leetcode----64. Minimum Path Sum

链接:https://leetcode.com/problems/minimum-path-sum/大意:给定一个m*n的二维整数矩阵grid(每个元素都是非负的),要求出从左上角到达右下角所经历路径中节点和最小的路径,求出其和(只能往右移动一格或者往下移动一格)。例子:思路:动态规划。 记dp[i][j]为grid[0][0]移动到dp[i - 1][j - 1]所经历路...

2019-03-31 13:13:18 125

原创 leetcode----63. Unique Paths II

链接:https://leetcode.com/problems/unique-paths-ii/大意:给定一个二维整数矩阵,矩阵中的元素为0/1。1表示该位置是障碍位置。求出从起点(左上角)到达终点(右下角)有多少种方案?注意:无法越过障碍位置。例子:思路:和上一题思路一样:https://blog.csdn.net/smart_ferry/article/details...

2019-03-31 12:57:35 133

原创 leetcode----62. Unique Paths

链接:https://leetcode.com/problems/unique-paths/大意:给定一个二维数组的大小m*n,要求从起点(左上角)走到终点(右下角)有多少种方案。规定:每次移动只能向右移动一格或者向下移动一格。例子:思路:动态规划。到达某点 i,j 的方案数为 到达该点的上面一点 i-1,j的方案数+ 到达该点左边一点 i,j-1 的方案数。动态规划递推...

2019-03-29 15:49:25 205

原创 leetcode----61. Rotate List

链接:https://leetcode.com/problems/rotate-list/大意:给定一个链表头节点head以及一个非负数k,要求链表向右移动k个单位后得到的新链表。例子:思路:首先得到链表的长度len,记录链表的尾节点,并把链表的尾节点指向头节点(即构成一个循环链表)。之后 k %= len,将多轮重复的右移简化为一轮右移。原链表向右移k个位置,即相当于把...

2019-03-29 15:28:51 114

原创 leetcode----60. Permutation Sequence

链接:https://leetcode.com/problems/permutation-sequence/大意:给定整数n和k,要求在[1,n]所有长度为n的全排列中找出第k大的全排列。其中,1<=n<=9,1<=k<=n!。例子:思路:穷举法是个思路,但是不可取,因为时间复杂度太大。可以尝试使用数学归纳的方法解决。对于例子n=4,k=9进行分析:...

2019-03-29 15:09:40 100

原创 leetcode----59. Spiral Matrix II

链接:https://leetcode.com/problems/spiral-matrix-ii/大意:给定一个正整数n,要求返回一个二维矩阵nxn。其中矩阵的每个元素螺旋式递增产生。例子:思路:和之前的螺旋打印二维数组元素思路类似,这里就不再累述。螺旋打印二维数组:https://blog.csdn.net/smart_ferry/article/details/888...

2019-03-28 14:24:52 87

原创 leetcode----56. Merge Intervals

链接:https://leetcode.com/problems/merge-intervals/大意:给定由一些区间(Interval)组成的类,要求合并所有重叠的区间。例子:思路:先对所有区间按照区间的起点由小到大排序。记interval1和interval2为两个相邻区间(interval1.start <= interval2.start)。若inte...

2019-03-28 13:27:20 152

原创 leetcode----55. Jump Game

链接:https://leetcode.com/problems/jump-game/大意:给定一个数组nums,数组中的每个元素nums[i]表示在该位置i最多可向前(右)跳nums[i]个距离。求:从起点0能否最终跳到终点nums.length - 1。例子:思路:动态规划。逆推动归 从终点往起点逆推记min为可以跳到最后位置且离最后位置最远的位置若当前位置i...

2019-03-28 11:48:25 130

原创 leetcode----54. Spiral Matrix

链接:https://leetcode.com/problems/spiral-matrix/大意:给定一个二维数组,对数组进行螺旋遍历(具体什么是螺旋遍历,请看例子)。例子:思路:与之前的二维数组顺时针旋转90度类似:https://blog.csdn.net/smart_ferry/article/details/88820560也是从最外围往内遍历,具体思路看代...

2019-03-27 14:28:36 118

原创 leetcode----50. Pow(x, n)

链接:https://leetcode.com/problems/powx-n/大意:给定一个double型的x,以及一个整数n。求x^n。从他的例子可以看到:保留的是5位小数,也就是说0.000001将会被转成0... 例子:思路:采用分治以及递归的思想解决,思想与之前的一个题解求两数的商:https://blog.csdn.net/smart_ferry/article...

2019-03-27 14:08:50 131

原创 leetcode----49. Group Anagrams

链接:https://leetcode.com/problems/group-anagrams/大意:给一个字符串数组,要求你把字符串满足以下规则的字符串进行归类。规则为:若两个字符串含有相同的字符,则为一类(不要求字符位置相同)。另:字符串中的字符都是小写字母。例子:思路:若两个字符串含有相同的字符,则为一类。也就是若两个字符串为一类,则这两个字符串按照字符的字典顺序排序...

2019-03-27 11:37:39 99

原创 leetcode----48. Rotate Image

链接:https://leetcode.com/problems/rotate-image/大意:对一个二维数组,进行顺时针90度旋转。要求:原地置换,即空间复杂度为O(1).例子:思路:数学问题,找规律...从矩阵的最外围依次往内交换元素,详细请看代码及注释代码:class Solution { public void rotate(int[][] ma...

2019-03-26 15:01:43 158

原创 leetcode----47. Permutations II

链接:https://leetcode.com/problems/permutations-ii/大意:给定一个含重复元素值的数组nums,要求以nums中所有数组成的所有组合(每个组合中每个位置上的数能且只能被使用一次),且不能有重复的组合。例子:思路:回溯法。与前一题不同的是本题数组中含有重复元素,需要剔除重复的组合。为了剔除重复的组合,需要对nums进行排序。...

2019-03-26 13:08:28 202

原创 leetcode----46. Permutations

链接:https://leetcode.com/problems/permutations/大意:给定一个不含重复数字的数字,求以数组中所有元素的所有组合(在每个组合中,每个数字能且只能被使用一次)。例子:思路:回溯法。需要借助一个辅助数组boolean[] visited,用于记录每个位置的变量是否已被访问。其余思路和前几题的回溯思路类似,不再累述了。代码:cl...

2019-03-26 11:45:28 98

原创 leetcode----43. Multiply Strings

链接:https://leetcode.com/problems/multiply-strings/大意:给定两个大数(以字符串的形式给定),输出两个大数的乘积(也以字符串形式表示)。规定:给定的两个大数,都为正数,除非是"0",否则这两个数都不可能是以0开头的数。例子:思路:手动模拟乘法。首先判断特殊情况:num1或者num2为"",则返回"0"将两个字符串的字符...

2019-03-25 16:32:44 115

原创 leetcode----40. Combination Sum II

链接:https://leetcode.com/problems/combination-sum-ii/大意:给定一个数组c(c中有重复的数字)和一个目标值t。要求使用c中的数字(每一个位置的数只能被使用一次)组合,组合的和为t。求所有这样的组合。另:c中所有元素以及t都是正数。例子:思路:和前一个题思路一样,采用回溯法。前一题:https://blog.csdn.net/...

2019-03-25 14:47:59 145

原创 leetcode----39. Combination Sum

链接:https://leetcode.com/problems/combination-sum/大意:给定一个不含重复数字的数组c,以及一个目标和t(c中所有元素以及t都是正数)。在数组c中任意选任意个数字的组合,要求组合的和为t。其中,c中每个数可以被选择多次。例子:思路:回溯法。首先看一个特殊情况:如果数组c的长度为0,则自然返回的是空列表了。对数组c进行排序...

2019-03-25 11:48:12 116

原创 leetcode----36. Valid Sudoku

链接:https://leetcode.com/problems/valid-sudoku/大意:给定一个9x9的宫格,宫格中每个位置为'1'-'9'或者'.'。规定:(1)对于宫格中的每一行,不能含有重复的'1'-'9'(2)对于宫格中的每一列,不能含有重复的'1'-'9'(3)对于宫格中的每个3x3的小宫格内(共9个小宫格),不能含有重复的'1'-'9'称满足上述三...

2019-03-24 19:12:43 105

原创 leetcode----34. Find First and Last Position of Element in Sorted Array

链接:https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/大意:给定一个有序数组(升序,有重复数字)nums以及一个待查找的数字target,返回target在数组nums中出现的首位置和尾位置组成的数组,如果target在nums中不存在,则返回[-1,-1]。要求...

2019-03-24 13:25:41 231

原创 leetcode----33. Search in Rotated Sorted Array

链接:https://leetcode.com/problems/search-in-rotated-sorted-array/大意:对于一个升序数组(数组中没有重复的两个元素),将这个数组按照其内某个位置旋转(右移)得到一个旋转数组。判断一个数target是否在旋转数组nums中。如果在数组中,则返回在数组中的位置;否则返回-1。要求时间复杂度为O(logn)。例子:思路:...

2019-03-24 13:10:48 134

原创 leetcode----563. Binary Tree Tilt

链接:https://leetcode.com/problems/binary-tree-tilt/大意:对于一棵树,定义一个概念-----树节点的tilt:为该节点下左子树所有节点的值与右子树所有节点的值之间的绝对值。给定树的根节点,求该树所有节点的tilt的和。例子:(空节点的tilt为0)思路:递归。主要问题是怎么设计这个递归?首先,对于每个树节点,它需要保存两个变量...

2019-03-24 11:14:18 199

原创 leetcode----617. Merge Two Binary Trees

链接:https://leetcode.com/problems/merge-two-binary-trees/大意:合并两棵树,合并规则如下:(1)若两棵树对应位置都为null,则新树在该位置为null(2)若两棵树中只有一棵树在对应位置为null,则新树在该位置的值为那个在该位置非空的值(3)若两棵树在对应位置都不为null,则新树在该位置的值为两棵树在该位置的值的和...

2019-03-23 17:33:04 78

原创 leetcode----951. Flip Equivalent Binary Trees

链接:https://leetcode.com/problems/flip-equivalent-binary-trees/题意:定义一种操作 flip:将某一树节点的左子树和右子树互换。给定两棵树,判断两棵树之间是否可以通过flip操作来得到。例子:思路:(1)若两个都为空,则返回true(2)若一个为空一个不为空,肯定是返回false(3)若根节点的值不一样,肯...

2019-03-23 16:03:05 119

原创 leetcode----31. Next Permutation

链接:https://leetcode.com/problems/next-permutation/大意:给定一个排列(数组表示),按自然顺序找出其下一个排列(也是用数组表示)。如果找不到其下一个排列,则返回整个数组最小的排列(也不是真的返回,只是调整数组中各个元素的顺序)。还是看它给的例子吧:思路:第一步:从左往右,找到数组中最后出现的满足前一个大于后一个的数的位置ind...

2019-03-22 15:33:37 200

原创 leetcode----29. Divide Two Integers

链接:https://leetcode.com/problems/divide-two-integers/大意:给定两个整数dividend和divisor,要求出divideng/divisor的结果(int型整数)。要求:不能用乘法、除法和取余运算。另:结果可能会溢出,若溢出,则返回Integer.MAX_VALUE思路:由于不能用乘除法和取余,所以可以采用加减法结合二分法...

2019-03-22 14:44:12 204

原创 leetcode----24. Swap Nodes in Pairs

链接:https://leetcode.com/problems/swap-nodes-in-pairs/题意:给定一个链表,交换相邻两个链表节点(0号和1号交换,2号和3号交换),不能使用交换节点值的方法完成思路:首先,判断两种边界情况:链表为空或者链表只有一个节点,则直接返回链表即可根据测试用例解释:(没有用例感觉自己说不清,词穷......)首先,定义两个变量...

2019-03-22 13:07:26 115

原创 leetcode----994. Rotting Oranges

链接:https://leetcode.com/problems/rotting-oranges/题意:给定一个二维矩阵,矩阵中每个元素为0,1,2三个数中的一个。已知操作:2可以把相邻(上下左右)的1转变为2。问需要多少次操作才可以将矩阵中所有的1变为2。。。说不清楚,看它给的图吧:(红色橘子为2,黄色橘子为1,空白为0)如果到最后仍有1存在,则返回-1思路:图的BFS。...

2019-03-21 22:45:54 261

原创 leetcode----213. House Robber II

链接:https://leetcode.com/problems/house-robber-ii/题意:有一个小偷打算去一群居民家偷钱。这些居民的家是一个环(数组表示,数组中每个元素都为正,表示该居民家中有多少钱),规定若小偷同时偷了相邻两家的钱,则会触动警报系统。求小偷在不触动警报系统的前提下最大能偷到多少金额思路:由于是一个环,也就是最后一个元素的下一个元素是第一个元素。那...

2019-03-21 21:17:14 126

原创 leetcode----28. Implement strStr()

链接:https://leetcode.com/problems/implement-strstr/大意:找到字符串needle在字符串haystack中首次出现的位置,其中:若haystack中不含字符串needle,则返回-1若needle为空串,则返回0思路:记haystack的长度为len1,needle的长度为len2,对于字符串haystack中的每个字符K...

2019-03-21 20:18:16 100

原创 leetcode----210. Course Schedule II

链接:https://leetcode.com/problems/course-schedule-ii/大意:给定所需要修习课程的总数numCourses,以及两门课之间的先序关系prerequisites,其中prerequisites中每个元素是一个二元组(长度为2的数组),对于任意一个二元组nums,意义为:修习nums[0]之前必须先修习nums[1]。找出一种方案可以使得满足...

2019-03-21 19:49:29 97

转载 Java线程池中的核心线程是如何被重复利用的?

转载自:https://blog.csdn.net/MingHuang2017/article/details/79571529引言在Java开发中,经常需要创建线程去执行一些任务,实现起来也非常方便,但如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。此时,我们很自然会想到使用线程池来解决这个问...

2019-03-13 19:52:34 797 1

空空如也

空空如也

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

TA关注的人

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