算法
算法大杂烩
小马的马甲
这个作者很懒,什么都没留下…
展开
-
重排链表 L0 → L1 → … → Ln-1 → Ln,变成L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …
重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → … 不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 ) 链接:https://leetcode-cn.com/problems/reorder-list //重排单向链表 func reorderList(head *ListNode) { mid := midNode(he原创 2021-09-01 11:56:13 · 328 阅读 · 0 评论 -
删除单项链表倒数第n个节点 (双指针法)
删除单项链表倒数第n个节点 (双指针法) type ListNode struct { Val int Next *ListNode } func removeNthFromEnd(head *ListNode, n int) *ListNode { dummy := &ListNode{ Val: -1, Next: head, } slowNode := dummy //慢指针 fastNode := head //快指针 //快指针先向前移动n位 cou原创 2021-08-31 11:21:11 · 49 阅读 · 0 评论 -
滑动窗口找长度最小的子数组
滑动窗口找长度最小的子数组 题目链接:力扣地址 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 滑动窗口解法: func findSubArrayLen(arr []int, target int) int { i := 0 l := len(arr)原创 2021-08-28 23:25:05 · 57 阅读 · 0 评论