
LeetCode
文章平均质量分 74
程序猿小乙
一个技术码农,分享自己这些年的一些职场收获,技术内容。
展开
-
LeetCode - 无重复字符的最长子串
同时对比指的是,每一次对比的时候,都将数组中所有的字符串拿出来进行比较,如同时比较数组中所有字符串的第一个字符,然后比较数组中所有字符串的第二个字符,以此类推,直到已对比完整个字符串,或者所在位置的字符有所不同。此方法也是常规思路中的一种,时间复杂度为 O(mn),其中 m 是字符串数组中字符串的最小长度,n 是字符串数组的长度,最坏情况下,字符串数组中的每个字符串都会被比较一次。根据代码的写法不同,若利用额外的空间则空间复杂度是 O(n),若使用数组中的第一个字符串做相关增减,则空间复杂度是 O(1)。原创 2023-04-12 08:43:07 · 349 阅读 · 0 评论 -
LeetCode - 两数相加
这道题目将两个链表结合成一个链表,比较清晰的思路就是,类似于四则运算中的加法,从个位往高位进行每一位相加,如果当前位的结果大于等于 10 时则需要在高位加 1。循环的方式是将两个链表同步递增,而递归的方式是每次计算完一位时再对链表的下一个结点做递归处理。通过循环的方式解决这个问题,时间复杂度是 O(n),空间复杂度也是 O(n),这里的 n 指的是最长的那个链表节点数。通过循环的方式解决这个问题,时间复杂度是 O(n),空间复杂度也是 O(n),这里的 n 指的是最长的那个链表节点数。原创 2023-04-11 08:28:22 · 637 阅读 · 0 评论 -
LeetCode - 两数之和
如果采用“空间换时间”的方法,利用哈希表结构查找时间复杂度为 O(1) 的特性,就可以一次循环快速得到结果。当然,采用这种方式的时间复杂度是 O(n2),空间复杂度是 O(1),实际效率是非常地低。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。最终,时间复杂度降到 O(n),空间复杂度则变成 O(n)。最先想到的逻辑肯定是使用双层循环暴力查找。的那两个整数,并返回它们的数组下标。,请你在该数组中找出和为目标值。你可以按任意顺序返回答案。原创 2023-04-10 09:20:57 · 595 阅读 · 0 评论