所有文章

代码随想录35期Day04-哈希表

0 条评论 算法 无标签 Greyson
242.有效的字母异位词 func isAnagram(s string, t string) bool { if len(s) != len(t) { return false } mp1 := make([]int, 10010) mp2 := make([]int, 10010) for i := range s { c...

链表骚操作和快慢指针

24. 两两交换链表中的节点 [x] 没啥技巧,画图就行 func swapPairs(head *ListNode) *ListNode { if head == nil { return head } virHead := ListNode{Next: head} p1 := &virHead p2 := head ...

单链表的定义和基本操作算法

0 条评论 算法 算法基础 单链表 Greyson
203. 移除链表元素 递归方法 func removeElements(head *ListNode, val int) *ListNode { if head == nil { return head } head.Next = removeElements(head.Next, val) if head.Val == val { ...

前缀和&双指针

1 条评论 算法 算法基础 数组 Greyson
@[toc] 有序数组的平方 977. 有序数组的平方 双指针,找到正负交界处,向两边边界扫 // 977. 有序数组的平方 func sortedSquares(nums []int) []int { var res []int midIndex := 0 for i := 0; i < len(nums); i++ { if nums[i] &...

二分查找和双指针

二分查找 704. 二分查找 要求: 有序数组 数组无重复 使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,当大家看到题目描述满足如上条件的时候,可要想一想是不是可以用二分法了。 左闭右闭即[left, right] l == r有意义,用于判断结果, 判断时必须 l <= r // 左右闭 func search(nums []int, target ...