自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣第236题二叉树的最近公共祖先合并两个有序数组

题目: 思路: 1.分为三种情况第一种当p跟q都不在root为跟的树中直接返回为空 2.第二种如果p和q只有一个存在于root为根的树中,函数返回该节点 3.第三种p跟q都在以root为根的树中,那么left跟right一定为p跟q 4.使用递归 classSolution{ publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){ if(root==nul...

2022-04-28 23:09:44 2192

原创 力扣第33题搜索旋转排序数组和第160相交链表

题目: 思路:就是将数组遍历,然后判断是否有输出值,有就输出下标 class Solution { public int search(int[] nums, int target) { for(int i=0; i < nums.length;i++){ if(nums[i]==target){ return i; } } return -1; } } 题目: 思路: 定义两个指针,依次循环两个链表,然后判断两个指针的值是否相等,然后输出 publicc...

2022-04-26 21:15:02 703

原创 力扣第103题二叉树的锯齿形层次遍历和第141题环形链表

题目: 思路: 1.将当前根节点存入队列中,然后将值记录下来后将该数据从队列中删除 2.使用Deque双端队列接收录下来的值 3.使用flag判断层数,根据层数实现不同的添加顺序到双端列表中 classSolution{ publicList<List<Integer>>zigzagLevelOrder(TreeNoderoot){ List<List<Integer>>lists=newLinke...

2022-04-25 22:34:18 605

原创 力扣第121题买卖股票的最佳时机和第102二叉树的层序遍历

题目: 思路: 1.先定义一个最小值,一般将第一个数定义位最小值 2.然后遍历,如果后面的值比最小值还要小,那么就将当前值替换为最小值,如果大于最小值则计算差值,然后比出最大值 classSolution{ publicintmaxProfit(int[]prices){ intres=0; intmaxprofile=0; intminPrice=prices[0]; for(int...

2022-04-24 18:57:42 1592

原创 力扣第912题排序数组和第53题最大子序和数

题目: 思路: 1.第一想法就是用冒泡排序,但是会超出时间限制 2.这道题用快速排序最快 classSolution{ publicint[]sortArray(int[]nums){ quickSort(nums,0,nums.length-1); returnnums; } publicvoidquickSort(int[]nums,intleft,intright){ ...

2022-04-23 22:31:02 375

原创 力扣第215数组中的第k个最大数和第25题k个 一组反转链表

题目: 思路: 1.使用优先队列将数组的数据添加,所以数据是从上到下依次以从小到大排序下来 2.然后将超出k个元素的堆删除,会将顶端数据删掉,这是

2022-04-22 18:29:23 342

原创 力扣第206题反转链表和第146LRU缓存机制

题目: 思路: 1.定义三个指针,分别为反转后newHead,当前头指针cur和下一个指针next 2.将反转的newHead初始换,然后让反转后的指针代表的值赋值给cur.next 3.然后循环,当next为空时结束循环 classSolution{ publicListNodereverseList(ListNodehead){ if(head==null) returnhead; ListNodene...

2022-04-21 16:00:49 308

原创 力扣第17题电话号码的字母组合和第18题四数之和

题目: 思路: 1.排列组合一般都是用回溯算法来计算的 2.先对输入的进行为null和空判断 3.使用map存入键值对,先从下边为0开始遍历,使用递归,当组合数长度等于输入的长度时代表组合完成 classSolution{ publicList<String>letterCombinations(Stringdigits){ List<String>lists=newArrayList<>(); if...

2022-04-20 23:46:46 86

原创 力扣第15题三数之和和第16题最接近的三数之和

题目: 思路: 1.先将输入的数组进行排序 2.对第一个数据进行判断,第一个必须位负数,大于零才可能三位数的之和为零 3.使用双指针,从第一个数据的后一位开始向后循环进位,后面的指针从最后一位开始进位 4.要进行去重,因为要考虑例如[-1,-1,0,2,2]因为数组中有相同数据,所以在循环的时候会多次运算一遍,但是得出结果只能是一组相同的,所以进行判断,相同则直接跳过这一位; classSolution{ publicList<List<Integer>>...

2022-04-19 16:16:13 116

原创 力扣第11题盛最多水的容器和第12题整数转罗马数字

题目: 思路: 1.用双指针分别从头跟末尾开始执行 2.如果左边的高度小于右边时向右进一,右边小于左边向左进一,同时算出体积,使用max函数比较大小,循环完后出差最大体积 classSolution{ publicintmaxArea(int[]height){ intleft=0; intright=height.length-1; intres=0; while(left<right){ ...

2022-04-18 17:05:44 607

原创 力扣第七题整数反转和第八题字符串转换整数

题目: 思路: 1.将整数从个位依次循环拿出在依次循环进位 2.返回结果进行判断是否在帧数范围内 classSolution{ publicintreverse(intx){ longresult=0; if(x==0) return0; while(x!=0){ result=result*10; result+=x%1...

2022-04-18 00:09:37 114

原创 力扣第四题寻找两个正序数组的中位数,第五题最长回文数和第六题z形变化

题目: 思路: 1.先将两个正序数组合并成有序数组 2.然后根据数组的长度是否为奇偶数,然后求中位数 classSolution{ publicdoublefindMedianSortedArrays(int[]nums1,int[]nums2){ int[]arr=newint[nums1.length+nums2.length]; intindex1=0; intindex2=0; ...

2022-04-17 01:25:15 116

原创 力扣第二题两数相加跟第三题无重复最长字串

题目: 思路: 1.定义头节点跟哨兵节点,先用头节点指向两个链表的相同下标,然后将值相加,进行进为处理 2.建立一个新的List Node链表,将值传入进去 3.同时哨兵节点记录,依次循环没有进位时结束循环 classSolution{ publicListNodeaddTwoNumbers(ListNodel1,ListNodel2){ ListNodedummy=newListNode(0); ListNodep=dumm...

2022-04-15 23:41:36 310

原创 力扣第26题删除有序数组的重复项,第27题移除元素和第28题实现strStr()

题目: 思路: 1.可以使用双指针来处理这道题目,定义一个快指针跟面指针 2.快指针先向前走,然后讲快指针与慢指针的的值进行对比,如果不相同则让慢指针向前进,相同则不动,等fast指针遍历完数组后,nums[0,slow]则为不重复元素; classSolution{ publicintremoveDuplicates(int[]nums){ if(nums.length==0){ return0; }...

2022-04-14 16:28:02 211

原创 力扣第二十题有效括号很第二十一题合成两个有序链表

题目: 思路: 1.先将输入的括号进行遍历,然后进行判断将左边类型的括号的存入栈中 2.将右边类型的括号用方法进行替换成相同类型的左边括号,然后进行对比 3.因为栈是先进后出,所以使用在使用最近的右边括号转化后使用peek方法返回栈 顶进行对比,对比完成后弹出栈顶元素,循环下次 4.栈 的isEmpty返回 为真。 classSolution{ publicbooleanisValid(Strings){ Stack<Character>...

2022-04-13 16:02:20 503

原创 力扣第13题罗马数字转整数和第14题最长公共前缀

题目: 罗马数字转整数 思路: 1.因为字符对应的数值都不一样,所以我们这里可以使用map将这些键值对的方式添加在map函数里。 2.要判断是否是一个字符组成,如果是一个字符组成,那返回对应的值 3.有题目得知当左边的数字小于右边的时候则是后面减去前面,反之则相加 4.先将输入的字符进行遍历,然后累加和,最后返回; classSolution{ publicintromanToInt(Strings){ Map<Character,Intege...

2022-04-12 17:31:29 52

原创 力扣第一题两数相加和第九题回文数

题目:两数相加 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 思路: 1.使用hash表,因为hash表可以在一定程度上减少时间复杂读 2.由于返回结果时数字且限定了位数,所以先定义一个长度为2的数组 3.使用hash表将整数目标值跟和数组中的每个数字的差值作为key,数组下表作为val

2022-04-11 23:15:36 93

空空如也

空空如也

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

TA关注的人

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