- 博客(11)
- 收藏
- 关注
原创 类加载顺序?静态代码块一定比构造器先执行吗?
类加载顺序?一个类中有静态变量、静态方法、静态代码块、成员变量、成员方法、非静态代码块、构造器,那么他们执行的顺序是什么呢?如果该类继承了父类,那么执行顺序又是什么样的呢?前置知识:当我们实例化对象时,jvm会先使用类加载器ClassLoader先将类加载至内存。然后再实例化,并且对一个类实例化多个对象时类只加载一次类中有静态的变量、静态方法等静态资源和非静态的资源,静态的资源属于类所有...
2019-07-03 12:33:15
1878
原创 LeetCode-初级算法-有效的数独 ( java )
运行结果1、题目2、分析3、源码class Solution { public boolean isValidSudoku(char[][] board) { for(int i = 0; i < 9; i++){ HashSet<Character> s1 = new HashSet<>(); ...
2019-05-03 14:13:28
295
原创 LeetCode-初级算法-两数之和
运行结果一、题目二、分析时间复杂度:O(n)空间复杂度:O(n)题目没有对空间做要求,所以我们应该采用以空间换时间的思路。题目要求找到符合要求的元素的下标。我们在结题时无论采用哪种方法,一定是先找到符合题目要求的两个元素。然后将其对应的下标作为返回值。这种有对应关系的数据与键(key)值(value)对很类似。使用哈希表会非常容易。步骤:首先对空数组以及数组长度为1 的情况进...
2019-04-30 18:36:36
281
原创 LeetCode-初级算法-移动零
运行结果一、题目二、分析三、源码class Solution { public void moveZeroes(int[] nums) { int j = 0; for(int i = 0; i < nums.length; i++){ if(0 != nums[i]){ nums[j...
2019-04-29 13:15:05
163
原创 LeetCode-初级算法-加一
运行结果一、题目二、分析三、源码class Solution { public int[] plusOne(int[] digits) { for(int i = digits.length - 1; i >= 0; i--){ if(digits[i] < 9){ digits[i] += 1...
2019-04-28 20:34:32
279
原创 LeetCode-初级算法-两个数组的交集
运行结果一、题目二、分析三、源码class Solution { public int[] intersect(int[] nums1, int[] nums2) { if(0 == nums1.length || 0 == nums2.length){ return new int[]{}; } Arra...
2019-04-26 18:50:34
236
原创 LeetCode-初级算法-只出现一次的数字
运行结果一、题目二、分析1、 根据题目的介绍我们可以得到以下结论数组不为空,而且有一个元素至出现了1次,其余元素均出现了2次数组的长度为奇数,即数组长度为1 、3、5、7…( 2 * i + 1 ) …等线性时间复杂度:时间复杂度最高为O(n)不使用额外空间:空间复杂度最高为O(1)方法一、使用异或运算(^)异或运算是在数值的二进制码上进行的操作,对应位相同为0,不...
2019-04-24 13:27:12
728
原创 LeetCode-初级算法-存在重复元素
运行结果1、题目2、分析方法一、先对数组进行排序,使用Arrays类的静态方法sort可以对数组进行升序排列,这样就会得到一个有序数组,循环判断相邻的元素是否相同,如果有相同值则返回true;3、源码class Solution { public boolean containsDuplicate(int[] nums) { if(2 > nums.l...
2019-04-23 17:18:35
201
原创 LeetCode-初级算法-旋转数组
一、题目描述1、给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。要求使用空间复杂度为 O(1) 的原地算法。2、eg:输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6...
2019-04-22 17:49:10
227
原创 LeetCode-初级算法-买卖股票的最佳时机 II
运行结果一、题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。eg:① [7,1,5,3,6,4] 第二天买入,第三天卖出,利润(5-1)=4,第四天买入,第五天卖出,利润(6-3)=3元,总利润(4+3)...
2019-04-09 12:05:59
234
原创 LeetCode-初级算法-从排序数组中删除重复项
运行结果一、题目描述1、给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。eg :① 给定数组 nums = [1,1,2],执行代码之后结果为:nums = [ 1 , 2 , 2 ] 方法的返回值为 2 &nb...
2019-04-08 19:21:56
361
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人