自定义博客皮肤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跟q4.使用递归classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(root==nul...

2022-04-28 23:09:44 2221

原创 力扣第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 742

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

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

2022-04-25 22:34:18 631

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

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

2022-04-24 18:57:42 1629

原创 力扣第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 392

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

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

2022-04-22 18:29:23 373

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

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

2022-04-21 16:00:49 329

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

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

2022-04-20 23:46:46 95

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

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

2022-04-19 16:16:13 122

原创 力扣第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 641

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

题目:思路: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 132

原创 力扣第四题寻找两个正序数组的中位数,第五题最长回文数和第六题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 154

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

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

2022-04-15 23:41:36 323

原创 力扣第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 249

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

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

2022-04-13 16:02:20 511

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

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

2022-04-12 17:31:29 63

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

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

2022-04-11 23:15:36 128

空空如也

空空如也

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

TA关注的人

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