自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣第24题:两两交换链表中的节点 迭代法分析思路

解题思路迭代法和递归法我认为从本质上看,递归法是“先归纳,后解决”,迭代法则是“先解决,后归纳”。所以这个题其实也就是两个两个解决,直至遍历整个链表。/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next)

2022-04-14 11:04:51 425

原创 力扣第24题:两两交换链表中的节点 递归法分析思路

解题思路思路分析:例如链表A→B→C→D→E→F→G,可以先把A~B看作一个单元,把C及C之后的看作一个单元,先把B指针指向A,A指针指向C,则实现了A、B两个元素的交换,此时再把CD交换,让A指向D,D指向C,C指向E,以此思路递推,即可实现递归算法。递归的三个条件:1.大问题可以拆解为两个小问题。2.子问题和大问题的解决方式是一致的。3.存在最小子问题。此题中:1.把所有相邻节点两两交换(大问题),可以转化为把前两个节点交换,把前两个节点忽略,再把前两个节点交换,不断重复直.

2022-04-14 10:28:13 714

原创 力扣第206题:反转链表 递归法分析思路

解题思路递归的三个条件:1.大问题可以拆解为两个小问题。2.子问题和大问题的解决方式是一致的。3.存在最小子问题。代码/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */.

2022-04-13 15:53:35 456

原创 力扣第206题:反转链表 迭代法分析思路

/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} head * @return {ListNode} */var reverseList .

2022-04-13 15:26:59 99

原创 力扣第203题:移除链表元素 迭代法分析思路

###解题思路一开始看有两种方法,但是其实不知道为什么我个人反而更容易理解递归,迭代的方法我绕了很久才绕清楚,以下分析都是基于我个人当时所遇到的困难来阐述的~/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null :.

2022-04-07 20:00:00 508

原创 力扣第203题:移除链表元素 递归法分析思路

### 解题思路链表的定义跟递归十分契合,所以很多链表的问题是可以用递归来解决的;需要明确的是递归的三大要点:1.递归函数的目的;2.递归函数的结束条件。3.递归函数的表达式/等价关系式。### 代码```javascript/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * thi

2022-04-07 19:30:58 592

原创 力扣第904题:水果成篮 滑动窗口法分析思路

var totalFruit = function(fruits) {let left = 0;//用来保存左窗口边界值。let right = 0;//用来保存右窗口边界值。let result = 0;//用来保存最大子数组长度的可能值。let type1 = fruits[left];//第一种水果。let type2 = fruits[right];//第二种水果while(right < fruits.length){/*由于全部窗口都需要检测, 所以需要不断执行直至右边.

2022-04-04 15:48:25 214

原创 力扣第209题:长度最小的子数组 滑动窗口法分析思路

var minSubArrayLen = function(target, nums) {let sum = 0,result = 888888,left = 0,subLen = 0;//sum为窗口内数值之和,left、right分别为窗口的左右边界,result随便取一个取不到的值,//用来保存最终的可能值,由于‘88888’取不到,所以最后检测如果result还是88888说明没有从过程中取得任何可能值。for (let right = 0 ;right < nums.length .

2022-04-04 09:46:59 160

原创 力扣209题:长度最小的子数组 暴力法分析思路

var minSubArrayLen = function(target, nums) {let resultarr = [];//空数组 用来保存产生的所有长度可能值。//为表达方便,以下叙述“数组”均指resularr,“长度可能值”均指此时满足条件的数组长度。for(i = 0 ; i < nums.length ; i++){//双层for联合循环暴力遍历 如果不理解去看for双层循环是怎么样的执行顺序。let sum = 0;for(j = i ; j < nums.le.

2022-04-02 11:35:15 187

空空如也

空空如也

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

TA关注的人

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