- 博客(216)
- 资源 (39)
- 收藏
- 关注
原创 剑指offer编程Java实现pdf——持续更新中...
声明:本文参照——剑指Offer——编程题的Java实现,并对一些算法进行优化,以下简称《参考》。面试题11:数值的整数次方题目大致为: 实现函数double power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。思路: 可以考虑对指数折半,这样只需要计算一半的值,若指
2017-08-01 19:49:58
4774
转载 IOC容器中bean的生命周期,iocbean生命周期
原文地址:http://www.bkjia.com/Javabc/1149957.htmlIOC容器中bean的生命周期,iocbean生命周期一、Bean的生命周期Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务。Spring IOC容器对Bean的生命周期进行管理的过程如下:(1).通过构造器或工厂
2017-05-23 07:34:45
1234
原创 leetcode 209. Minimum Size Subarray Sum-子序列最小长度|双指针|二分查找
原题链接:209. Minimum Size Subarray Sum【思路1-Java】 双指针用双指针——fast 和 slow实现,用 sum 记录子序列的和,1. 如果 sum 2. 如果 sum >= s,那么更新 minLen 长度,minLen=Math.min(fast-slow, minLen)public class Solution { publi
2016-06-13 22:14:10
1047
原创 leetcode 131. Palindrome Partitioning-回溯算法
原题链接:131. Palindrome Partitioning【思路-Java】递归实现本题采用回溯算法实现。1. 最外层循环public class Solution { public List> partition(String s) { List> res = new ArrayList<>(); dfs(s, res, new A
2016-06-13 17:24:13
3354
原创 leetcode 50. Pow(x, n)-细说边界问题
原题链接:50. Pow(x, n)【思路-Java】递归实现采用递归实现,那么本题的终止条件是 n == 0 和 n == 1。这里不采用下面的做法:public class Solution { public double myPow(double x, int n) { if(n == 0) return 1; if(n == 1) ret
2016-06-13 11:26:49
7284
2
原创 leetcode 40. Combination Sum II-回溯算法
原题链接:40. Combination Sum II【思路-Java】递归实现本题是 leetcode 39. Combination Sum-回溯算法|递归|非递归 的延伸,本题中给定的数组元素有重复。对于[1,1,2],如果还是采用原先的处理,结果集中肯定会有重复的元素出现,那么怎么处理呢?方法就是只对本层循环中重复元素出现进行调用,而对下一层递归中重复元素跳过递归调用。为了使重复元
2016-06-13 09:16:40
1532
原创 leetcode 47. Permutations II-排列|回溯算法
原题链接:47. Permutations II【思路1-Java】这题是leetcode 46. Permutations-全排列|回溯|递归|非递归思路1延伸,每次交换 nums 中的两个元素,新生成一种新的组合,将该组合放入中间集,再放入结果集中,对于重复元素的处理,这里采用 set 集合进行去重,思路虽然好理解,可是也费了不少空间:public class Solution {
2016-06-12 15:11:12
4549
原创 leetcode 55. Jump Game-贪心算法
原题链接:55. Jump Game【思路-Java】贪心算法本题采用贪心算法。贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优上加以考虑,他所作出的是在某种意义上的局部最优解。贪心算法和动态规划算法都是由局部最优导出全局最优,这里不得不比较下二者的区别贪心算法: 1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上
2016-06-11 16:28:26
5807
原创 leetcode 113. Path Sum II-路径和|回溯算法
原题链接:113. Path Sum II【思路】采用回溯算法。回溯算法要求我们准备一个中间集 temp,一个结果集 res。这里和以往题目递归中包含循环,循环中嵌套递归的不同。本题没有包含循环。 递归遍历过程中,往中间集当中添加节点值,遍历结束的条件为 root 的左右节点均为空,即到叶子节点为止,如果满足条件——路径上各节点值和等于 sum,那么就可以将结果集添加到中间集当中。回溯是在
2016-06-11 15:35:35
2462
1
原创 leetcode 264. Ugly Number II-丑数|动态规划
原题链接:264. Ugly Number II【思路】该题考查动态规划。一个因子是2,3,5中的一个,另一个因子在 uglys 数组中,该因子下标存储在 ids 数组中:public class Solution { public int nthUglyNumber(int n) { int[] ids = new int[3]; int[]
2016-06-11 14:41:41
3238
原创 leetcode 236. Lowest Common Ancestor of a Binary Tree-二叉树共同祖先|深度遍历|递归|非递归
原题链接:236. Lowest Common Ancestor of a Binary Tree【思路-Java】dfs|递归实现本题是二叉树的深度遍历的典型应用,基础还是二叉树的遍历。以根节点为起点,往左右分支上寻找,如果找到了 p 或 q 节点,则返回该节点。否则,继续向叶子节点寻找,假想一下,如果一直递归到 null 还是找不到该节点,那么说明这个分支上不存在该节点。pub
2016-06-11 11:44:37
2691
原创 leetcode 95. Unique Binary Search Trees II-分治算法|动态规划|卡特兰数
原题链接:95. Unique Binary Search Trees II【思路】这是一道经典的分治算法题目,相比回溯算法,虽然都是递归中包含循环,循环中嵌套递归。但是,分治算法会利用到前面相互独立的子问题的中间结果,并将子问题层层串接在一起。最外层循环,将子问题划分为和为 n 的两个子问题,然后下一层递归又分别将子问题划分为更小的子问题,直到小问题小到只有大小为1的子问题,再将小问题的
2016-06-11 09:24:55
3379
原创 leetcode Combination Sum III-回溯|递归
原题链接:Combination Sum III【思路】-递归实现public class Solution { public List> combinationSum3(int k, int n) { List> res = new ArrayList>(); List temp = new ArrayList(); dfs
2016-06-09 15:50:47
689
原创 leetcode 330. Patching Array-数组补丁|贪心算法
原题链接:330. Patching Array【思路】贪心法public class Solution { public int minPatches(int[] nums, int n) { int patchCount = 0, i = 0; long miss = 1; while(miss <= n) {
2016-06-09 15:37:17
1675
原创 leetcode 147. Insertion Sort List-链表插入排序
原题链接:147. Insertion Sort List【思路-Java】 插入排序public class Solution { public ListNode insertionSortList(ListNode head) { ListNode dummyHead = new ListNode(0), p = head; dummyH
2016-06-09 10:36:40
3538
原创 leetcode 109. Convert Sorted List to Binary Search Tree-链表转树|指针|二分归并
原题链接:109. Convert Sorted List to Binary Search Tree【思路-Java】二分归并|递归实现模仿二分归并的思想实现public class Solution { public TreeNode sortedListToBST(ListNode head) { return rec(head, null); }
2016-06-08 17:12:40
648
原创 leetcode 114. Flatten Binary Tree to Linked List-二叉树变链表|指针
原题链接:114. Flatten Binary Tree to Linked List【思路】当节点的左子树不为空时,将左子树放在节点的右边,并将节点的左边置为空,将右子树放在左子树的最右边。依次向右边遍历。public class Solution { public void flatten(TreeNode root) { TreeNode p = roo
2016-06-07 22:07:28
2916
原创 leetcode 78. Subsets-数组子集|回溯算法
原题链接:78. Subsets【思路1-Java】回溯算法|递归实现本解法采用回溯算法实现,回溯算法的基本形式是“递归+循环”,正因为循环中嵌套着递归,递归中包含循环,这才使得回溯比一般的递归和单纯的循环更难理解,其实我们熟悉了它的基本形式,就会觉得这样的算法难度也不是很大。原数组中的每个元素有两种状态:存在和不存在。① 外层循环逐一往中间集合 temp 中加入元素 nums[i],
2016-06-07 17:04:45
15433
1
原创 leetcode 81. Search in Rotated Sorted Array II-旋转数组|二分查找
原题链接:81. Search in Rotated Sorted Array II【思路-Java、Python】 二分查找实现本题采用二分法实现,但是比较挠头的是边界问题,而且元素有重复,相比纯粹递增的数组难度要大得多,要解决这个问题,首先要对所有可能情况进行分类,然后对每种可能的类别进行相应的处理,本题的类别可以表示为下面的趋势图暂且不考虑nums[mid] = nums
2016-06-07 11:34:23
4351
原创 leetcode 275. H-Index II-h因子|二分查找
原题链接:275. H-Index II【思路-Java、Python】 二分查找 T=O(logn)|M=O(1)本题是基于 leetcode 274. H-Index-h因子|哈希表,如果对于 h-index 概念不是很理解的可以参考这篇博文。本题采用二分查找进行public class Solution { public int hIndex(int[] citati
2016-06-06 15:51:50
2159
原创 leetcode 274. H-Index-h因子|哈希表
原题链接:274. H-Index【思路】public class Solution { public int hIndex(int[] citations) { Arrays.sort(citations); int level = 0; for(int i = 0; i < citations.length; i++)
2016-06-06 13:46:22
3628
原创 leetcode 162. Find Peak Element-查找峰元素|二分查找
原题链接:162. Find Peak Element【思路-Java、Python】 二分查找题目中已经说明,最左端和最右端元素均无限小,中间元素比两侧都要大,那么本题中一定存在一个峰元素。所以不管中间有多少波峰,只要找到峰元素,我们只需找到刚刚开始下降而未下降的位置。采用二分查找,查出这样一个位置即可,我们知道二分查找要比较的是 target 元素,本题的 target 元素是 mid
2016-06-05 16:47:54
4245
原创 leetcode 129. Sum Root to Leaf Numbers-根到叶子之和|bfs|dfs|递归|非递归
原题链接:129. Sum Root to Leaf Numbers【思路-Java】非递归实现public class Solution { public int sumNumbers(TreeNode root) { return dfs(root, 0); } private int dfs(TreeNode root, int curSum)
2016-06-05 13:21:50
705
原创 leetcode 279. Perfect Squares-完美平方数|动态规划
原题链接:279. Perfect Squares【思路-Java】采用动态规划实现。用 dp[i] 数组存储第 i 个数的完美平方数。递推式为:dp[i] = Math.max(dp[j] + dp[i-j], dp[i],认为 i 的完全平方数是从和为 i 的两个完全平方数 dp[j] 和 dp[i-j]之和,然后从中取最小。public class Solution {
2016-06-04 17:14:59
11309
原创 leetcode 73. Set Matrix Zeroes-矩阵置零|数组
原题链接:73. Set Matrix Zeroes【思路-Java】T=O(n)|M=O(n)建立一个大小为 n 的数组,用于记录第 j 列是否出现0public class Solution { public void setZeroes(int[][] matrix) { boolean[] flag = new boolean[matrix[0].len
2016-06-03 16:47:58
2734
原创 python语言基础
1. Python 不会存在溢出问题>>> sys.maxint# 9223372036854775807得到的结果为2^63-1,其实上得到2^31-1还是2^31-1取决于你的操作系统。见Python源码的Misc/History:sys.maxint is thelargest Python int, which is actually a C long如果这句话属
2016-06-03 09:29:38
593
原创 leetcode 334. Increasing Triplet Subsequence-递增序列|双指针
原题链接:334. Increasing Triplet Subsequence【思路-Java、Python】维护两个指针——first和second,分别代表序列中第1、第2大的数。遍历过程中,当遇到比 first 小的值就用它替换掉 first,如果遇到比 first 大而比 second 小的值就用它替换掉 second,如果遇到比 second 还大的值,那就返回 true。如果
2016-06-03 09:05:36
941
原创 leetcode 74. Search a 2D Matrix-矩阵搜索|二分查找
原题链接:74. Search a 2D Matrix【思路1-Java】二分查找|T=O(logn*m)|M=O(1)这种思路是利用一位数组二分查找的思想,先计算出数组总个数,并计算出中间元素的下标。将这个中间元素坐标映射成二维数组坐标:public class Solution { public boolean searchMatrix(int[][] matrix, in
2016-06-02 22:39:32
1338
原创 leetcode 300. Longest Increasing Subsequence-最长子序列|动态规划
原题链接:300. Longest Increasing Subsequence【思路1-Java】T=O(n2)|M=O(n)建立一个大小与 nums 长度相等的数组 maxLens,用于记录每个 nums 最长长度,即 maxLens[i] 表示nums 第 0 个到第 i 个元素中以 nums[i]为最大值的最长子序列长度(注意序列的最后一个值为 nums[i]):public
2016-06-02 20:17:05
4276
原创 leetcode 77. Combinations-排列|递归|非递归|Java|Python
原题链接:77. Combinations【思路-Java、Python】采用回溯算法。这是一道 NP 难问题,时间复杂度没办法提高,用一个循环递归处理子问题,问题的终止条件是每个组合中的元素个数达到 k 个:public class Solution { public List> combine(int n, int k) { List> res = new
2016-06-02 10:43:01
4449
原创 leetcode 48. Rotate Image-矩阵旋转
原题链接:48. Rotate Image【思路-Java】 矩阵的顺时针90°旋转,关键是找到坐标关系。本题中 n 的值提前减1了,所以在下面的运算中就没有减1了。public class Solution { public void rotate(int[][] matrix) { for(int i=0, temp=0, n=matrix.leng
2016-06-02 09:21:20
3760
1
原创 leetcode 11. Container With Most Water-最大容器|双指针
原题链接:11. Container With Most Water【思路】用两枚指针——left, right 分别从左和右向中间遍历(left 和 right 中高度较小的向中间靠齐)。在遍历过程中遇到更大的高度时,由于可能得到更大面积,因此要和原先面积做一次比较:public class Solution { public int maxArea(int[] height
2016-06-01 21:31:03
419
原创 leetcode 75. Sort Colors-颜色排序|双指针
原题链接:75. Sort Colors【思路1-Python】-双指针|T=O(n)|S=O(1)申请两枚指针,head 和 tail,用 i 进行遍历,当 num[i] == 0时,交换当前位置和头指针处值,当 nums[i] == 2时,交换当前位置和尾指针处值,当 nums[i] == 1时,不进行交换:class Solution(object): def sortC
2016-06-01 15:48:15
1494
原创 leetcode 173. Binary Search Tree Iterator-二叉搜索树迭代|中序遍历
原题链接:173. Binary Search Tree Iterator【思路-Java】中序遍历非递归实现我们知道二叉搜索树当前节点值总是大于左子树上的任一节点值,总是大于右子树上的任一节点值。要从小到大取出该节点,我们可以采用二叉树的中序遍历,该思路借用一个栈来实现,如果对二叉树的中序遍历思路不是很清晰的,可以参考我的另一篇博文:leetcode 94. Binary Tree
2016-06-01 11:37:01
1237
原创 leetcode 199. Binary Tree Right Side View-树的右视图|递归|非递归|Java|Python
原题链接:199. Binary Tree Right Side View【思路】非递归实现层次遍历,每一层都是从左到右遍历,将每一层的最右一个节点添加到结果集中就是我们需要得到的结果:public class Solution { public List rightSideView(TreeNode root) { List res = new ArrayLi
2016-05-31 22:20:00
1940
wineskin-2.5.4.app.zip
2016-02-11
org.eclipse.jface.text_3.9.2.v20141003-1326.jar
2016-02-10
HA-Instant Client-v11.2.0.3.0-x86.rar下载
2015-12-02
msbase.jar,mssqlserver.jar,msutil.jar sqljdbc4.jar
2015-11-06
免积分解决myeclipse2013空格等号等上屏问题org.eclipse.jface.text_3.8.2.v20121126-164145.jar
2015-11-06
Eclipse空格键等于号上屏补丁org.eclipse.jface.text_3.8.200.201306271036.jar
2015-11-06
解决eclipse空格键等号等上屏问题org.eclipse.jface.text_3.8.200.201306271036.jar
2015-11-06
解决MyEclipse2013空格键等于号上屏问题的 org.eclipse.jface.text_3.8.2.v20121126-164145.jar
2015-11-06
Cracking the Coding Interview 第6版 高清完整版PDF
2018-08-08
July著《编程之法:面试和算法心得》完整扫描版
2018-04-12
基于Movielens的推荐系统—评分预测
2018-01-07
【推荐】Effective Java(第2版)中文+英文+源码
2017-11-25
com.sun.jdmk.comm.HtmlAdaptorServer对应jar包下载
2017-09-15
junit-4.12.jar包完整版下载
2017-09-11
编译运行tomcat源码需要用到的jar包
2017-09-11
tomcat7源码下载
2017-09-11
【高清扫描版】精通Tomcat下载
2017-09-11
深入剖析Tomcat(中文版)+书本源码+tomcat源码
2017-09-11
【高清扫描版】精通Tomcat:Java Web应用开发、框架分析与组件配置、系统集成与案例实战
2017-09-11
org.eclipse.jface.text_3.10.0.v20150603-1752.jar - eclipse空格等号上屏补丁
2016-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人