leetcode刷题总结
记录我刷力扣的过程
MXG_ZZU
研三在读
展开
-
力扣链表总结
合并两个有序链表(简单) 环形链表(简单) 环形链表 II(中等) 链表的中间结点(简单) 删除链表的倒数第 N 个结点(中等) 相交链表(简单)原创 2022-02-28 20:12:23 · 289 阅读 · 0 评论 -
为什么要内存对齐
为什么要内存对齐? 很多CPU是从对齐的地址开始加载数据,外部总线从内存一次获取的数据往往不是1比特,而是4比特或8比特或更多,与数据总线带宽有关。比如有一个int数据类型,其分配的4比特没有对齐。比如分配在3,4,5,6这四个字节上。而CPU取值是对齐的,CPU可能就需要分别取两次0-3,4-7的数据才能得到这个int数据的值。所以内存对齐可以加快读取数据速度。 ...原创 2022-02-25 18:42:00 · 317 阅读 · 0 评论 -
LeetCode 二分查找
LeetCode 278. 第一个错误的版本 class Solution { public: int firstBadVersion(int n) { int left = 1, right = n; while (left < right) { // 循环直至区间左右端点相同 int mid = left + (right - left) / 2; // 防止计算时溢出 if (isBadVersion(mid原创 2021-12-25 12:19:25 · 2971 阅读 · 0 评论 -
leetcode 无重复字符的最长子串(滑动窗口法)
无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 最简单的想法是暴力法,计算每个字串的长度,以及是否有重复字符,但这样复杂度过高,可以使用滑动窗口的思想来解决这个问题。 class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ lookup .原创 2021-12-06 22:48:45 · 66 阅读 · 0 评论 -
leetcode双指针删除数组中元素
这三题很类似,分别是26、27、80,都是在有序数组中利用快慢指针扫描然后删除某些元素,定义两个指针fast 和 slow 分别为快指针和慢指针,快指针表示遍历数组到达的下标位置,慢指针表示下一个不同元素要填入的下标位置。 26. 删除有序数组中的重复项 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array 问题:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长原创 2021-12-06 14:57:48 · 185 阅读 · 0 评论