自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java方法重载(Overload)

方法重载:方法名相同,只是传入的参数个数不同,或者类型不同,或者不同类型不同顺序。此时调用方法时,只需要根据传入参数即可找到对应的那个方法,而不需要定义多个方法,eg:sumtwo,sumthree,sumfour等。只用一个sum方法就行了1.与参数个数有关public int sum(int x, int y){ return x+y;}public int sum(int x, int y, int z){ return x+y+z;}2.与参数类型有关​

2022-03-30 20:28:19 537

原创 List与ArrayList的区别

在刷题的时候发现ArrayList初始化时,有下面两种情况:List<Integer> list = new ArrayList<>();ArrayList<Integer> list = new ArrayList<>();List是一个接口,而ArrayList是List接口的一个实现类其实第一种写法也是创建了一个ArrayList实例对象。两种在使用的时候是一样的,区别在于第一种方法的好处是,以后我们需要LinkedList的时候,

2022-02-24 20:37:46 1888

原创 Deque与Stack实现栈的区别

使用Deque允许两头都进,两头都出,这种队列叫双端队列(Double Ended Queue),简称Deque。Java集合提供了接口Deque来实现一个双端队列,它的功能:①既可以添加到队尾,也可以添加到队首;②既可以从队首获取,又可以从队尾获取。在原来的queue的方法名上加了表示在队首还是队尾操作的表示(Last或First)。Deque接口实际上扩展自Queue:public interface Deque<E> extends Queue<E> { .

2022-02-21 10:12:41 881

原创 Leetcode 150.逆波兰表达式求值(以及字符串比较时遇到的问题)

题目:根据 逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9class Solution { publi...

2022-02-14 19:12:31 62

原创 寻找链表中间结点以及一些相关题目Leetcode 876,Leetcode 234,Leetcode 143

Leetcode 876:给定一个头结点为 head 的非空单链表,返回链表的中间结点。示例:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。输入:[1,2,3,4,5,6]输出:此列表中的结点 4 (序列化形式:[4,5,6])由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。思路:此处用快慢双指针知识,快指针每次走两步,慢指针每次走一步。/**

2022-01-30 17:25:41 430

原创 LeetCode125遇到的问题。StringBuffer与String中equals方法的不同

StringBuffer.equals()比较的是对象同一对象不同内容,怎么比较都是true 不同对象相同内容,怎么比较都是false public static void main(String[] args) { // TODO Auto-generated method stub StringBuffer aBuffer = new StringBuffer(); aBuffer.append("12"); Strin

2022-01-19 00:40:08 395

原创 力扣岛屿问题

岛屿问题是经典的网格搜索问题,此类问题有通用的DFS方法。题目有:leetcode: 200 岛屿数量,463:岛屿的周长,695:岛屿的最大面积。leetcode200:给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:此类问题均可以用DFS求解,当搜索到某一个点时,只需要依次递归搜索其上下左右四个响铃点即可。..

2021-12-08 20:47:58 777

原创 剑指Offer56-1|数组中数字出现的次数

题目:一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。思路:要求时间复杂度O(n),不能用for循环嵌套遍历;空间复杂度O(1),不能使用Hashset。此处使用位运算。eg:若题目改为,数组中只有一个数字出现了一次,其他出现了多次,输出那个只出现了一次的数字。则考虑到两个相同的数字异或为0,而0与任何数字a异或:a^0 =a,则将所有数字全部异或,得到a。假设数组中x,y只出现了一次,...

2021-11-02 20:04:13 100

原创 剑指 Offer 65|不用加减乘除做加法

题目:写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2思路:用位运算可以起到代替作用,其中n=a^b,异或等价于无进位加法,m=a&b<<1,与运算等价于进位和,移位后再相加此处需要注意不能用加法直接将m,n加起来,只能重复这个过程。直至进位为0,然后输出无进位和即可!class Solution { public int add..

2021-11-02 18:40:26 50

原创 今天写二叉树BFS遇到的一个坑。

题目是求二叉树的深度,自己写得层次遍历方法classSolution{publicintmaxDepth(TreeNoderoot){//非递归,BFSif(root==null)return0;intcount=0;Queue<TreeNode>queue=newLinkedList<TreeNode>();queue.add(...

2021-10-29 20:06:18 64

原创 剑指Offer12|矩阵中路径(搜索与回溯),学习笔记

1.暴力搜索从每一个字符开始的可能性。2.DFS条件a.递归参数: 当前元素在矩阵 board 中的行列索引 i 和 j ,当前目标字符在 word 中的索引 k 。b.终止条件:返回 false : (1) 行或列索引越界 或 (2) 当前矩阵元素与目标字符不同 或 (3) 当前矩阵元素已访问过 ( (3) 可合并至 (2) ) 。返回 true : k = len(word) - 1 ,即字符串 word 已全部匹配。c.递推工作:标记当前矩阵元素: 将 board[i][j] ...

2021-10-25 21:19:06 74

原创 剑指Offer42|dp问题:连续子数组最大和

输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。解答:在暴力破解过程中需要计算的子数组一定如下所列,其中sum(i,j)代表计算从nums[i]到nums[j]的元素之和,我们要找到最大的sum(i,j) 。为此,我们添加一列最为每行的最大值,即以j为结尾的子数组和最大值计算dp[j]的过程:eg 计算 dp[3]可以看到,四者同时包含nums[3],比较四者哪个更大,其实就是比较0、nums[2].

2021-10-21 00:55:16 96

原创 二分查找死循环

二分查找重点概括写成 while(left < right) ,退出循环的时候有 left == right 成立,好处是不用判断应该返回 left 还是 right;区间 [left..right] 划分只有以下两种情况:分成 [left..mid] 和 [mid + 1..right],分别对应 right = mid 和 left = mid + 1;分成 [left..mid - 1] 和 [mid..right],分别对应 right = mid - 1 和 left = mid,这

2021-10-14 16:06:21 276

原创 leetcode2.两数相加

小技巧:对于链表问题,返回结果为头结点时,通常需要先初始化一个预先指针 pre,该指针的下一个节点指向真正的头结点head。使用预先指针的目的在于链表初始化时无可用节点值,而且链表构造过程需要指针移动,进而会导致头指针丢失,无法返回结果。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode pre = new ListNode(0); ListNo...

2021-09-24 21:05:32 46

原创 leetcode 11

自己写的暴力解法,测试用例过多之后时间过多,超出限制classSolution{publicintmaxArea(int[]height){intlength=height.length;int[]Area=newint[length];int[]max=newint[length];inth=0;for(inti=0;i<length;i...

2021-09-08 20:44:10 157

空空如也

空空如也

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

TA关注的人

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