佛山网站建设优化,网站备案证书如何打开,网站建设需要数据库吗,创意新颖的产品设计一、滑动窗口
1. 找出数组中元素和大于给定值的子数组的最小长度
右指针从左到右遍历#xff0c;在每个右指针下#xff0c;如果去掉左边元素的元素和大于等于给定值则左指针右移一次#xff0c;直到小于给定值#xff0c;右指针右移一个。
2.找到乘积小于给定值的子数组…一、滑动窗口
1. 找出数组中元素和大于给定值的子数组的最小长度
右指针从左到右遍历在每个右指针下如果去掉左边元素的元素和大于等于给定值则左指针右移一次直到小于给定值右指针右移一个。
2.找到乘积小于给定值的子数组的数量
右指针从左到右遍历在每个右指针下乘积大于等于给定值则左指针右移一次直到小于给定值右指针右移一个。
3.无重复字符的最长子串长度
右指针从左到右遍历在每个右指针下如果有重复左指针右移一次直到没有重复右指针右移一个。
二、二分法
1.在排序数组中查找元素的第一个和最后一个位置
红蓝染色法查找第一个或最后一个或者小于等于或者小于或者大于给定值的第一个元素都可以转换成第一个大于等于给定值的问题。例如第一个等于给定值的元素则是第一个大于等于给定值的元素且等于给定值。大于等于给定值的元素左指针右指针从两边开始中间大于等于给定值则右指针变为中间反之则左指针变为中间。
2.查找数组的峰值元素
红蓝染色法峰值左侧红色峰值右侧蓝色。L\M\RM与右侧相比如果大于右侧那么右侧都是蓝色如果小于那么左侧都是红色。
3.搜索旋转排序数组最小值
红蓝染色法以最后一个元素为界可以区分两段L\M\R中M小于最后一个元素那么M就在右边一段M的右侧就是蓝色大于最后一个元素M就在左边一段M的左侧是红色。
三、链表
1.反转链表
遍历每个节点cur为当前节点cur的next保存为nxt后变为prepre变为curcur变为nxt循环。即用完这个变量后再改变这个变量。
2.链表中间节点
快慢指针法慢指针走一步快指针走两步快指针走到最后一个节点或者空节点时慢指针就再中间节点。
3.环形链表
快慢指针法慢指针走一步快指针走两步快指针相对来说走一步那么如果存在环形链表快指针必然会赶上慢指针。
4.重排链表
1和2结合找到中间节点并翻转右侧部分然后交叉。
5.删除链表某个节点
将该节点的值修改为下一个节点的值该节点的next修改为下一个节点的next。
6.删除链表的倒数第N个节点
前后指针前指针指向dummy node后指针dummy node后移动n步。然后同步走直到后指针为最后一个节点然后删除前指针的后一个节点。
7.删除排序链表中的重复元素
如果下一个节点的值与当前节点相同则删除下一个节点。