力扣3/4

739.接雨水

法一:单调栈

若栈口元素小于等于栈顶元素,入栈。若栈口元素大于栈顶元素,循环以下过程直到栈口元素小于栈顶元素:弹出栈顶元素记录下标为mid,选取栈口元素和新的栈顶元素的最小值(较小高度)减去中间柱子的高度,乘以栈顶元素到新的栈顶元素的宽度,就是雨水面积

法二:双指针

定义左右指针分别记录左边的最大高度和右边的最大高度,如果左边大于右边,右移左指针,取新的左指针高度和maxL的最大值,再加上maxL-height[left]的值,右指针同理

238.除自身以外数组的乘积

前缀积*后缀积:从左往右遍历,得到每个元素的前缀积,再从右往左遍历,用前缀积*后缀积

2. 两数相加

 从左往后相加,用ListNode创建相加后的新结点,head指向这个结点用于最后返回结果,相加后的v%10等于该位结果,v//10等于下一位的进位

240.搜索二维矩阵

二分查找:对每一层都使用二分查找,遍历row

 

 19.删除链表的倒数第N个结点

 快慢指针:定义一个虚拟结点指向头节点,快指针指向head,慢指针指向虚拟结点,先让快指针移动n步,再让快慢指针同时移动直到快指针指向空结点,此时慢指针指向要删除元素的上一个结点,可以直接删除,最后返回的是虚拟结点的下一个结点

24.两两交换

递归:定义一个tmp结点指向要交换的第二个结点,第一个结点指向下一组交换后的第一个结点,然后第二个结点指向第一个结点,然后返回tmp

 543.二叉树的直径

dfs搜索:计算直径,就是左链的长度加右链的长度再加二,递归的去计算左右链的长度,也就是每次递归都返回左右链长度的最大值加上一 。也就是在计算深度的同时计算直径,边界条件为返回-1

102.二叉树的层序遍历

bfs搜索: 循环遍历这一层的元素加入到临时数组中,将这一层元素的子孩子加入到队列中,这一层遍历结束后加入到结果数组中

108.将有序数组转换为二叉搜索树

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值