多解LeetCode
顾冷__
克服虛荣心、炫耀欲,你要对付的是你时刻想要出风头的小聪明
展开
-
【多解LeetCode】 142.环形链表 II
142.环形链表 II /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode * judgecircle(struct ListNode *head) { if(head == NULL) return 0; struct ListNode * fast ,* slow原创 2022-01-13 22:53:47 · 120 阅读 · 3 评论 -
【多解LeetCode】|876. 链表的中间结点
文章目录1.两次遍历(一般思路 )2.一次遍历(快慢指针) 1.两次遍历(一般思路 ) 题目给定的很简单,如果不考虑时空复杂度的话可以遍历依次找到节点数N,然后遍历找到mid节点的位置返回即可(mid=N/2) 比较简单,代码略 2.一次遍历(快慢指针) 快慢指针是双指针中比较经典的一个题型 主要的核心点就在于对于迭代条件的判断 struct ListNode* middleNode(struct ListNode* head) { struct ListNode* fast=head;原创 2021-12-30 00:23:20 · 291 阅读 · 5 评论 -
多解LeetCode系列|27.移除数组中的元素
移除数组中的元素 27. 移除元素 - 力扣(LeetCode) (leetcode-cn.com) 1.遍历 依次遍历 寻找val,每次将之后的数据向前挪动1个单位。 时间复杂度:N^2 空间复杂度:O(1) 2.时间复杂度优化到O(N) 创建临时数组,把不是val的值放入tem[],再将tem[]赋值拷贝回原数组 时间&空间复杂度:O(N) 3.空间复杂度优化到O(1) 双指针 Des 、Sear Sear去找不等于val的值,放到Des指向的位置去,再Sear++,Des++ 找到不等原创 2021-12-16 17:02:20 · 305 阅读 · 18 评论