160.相交链表 此题必须分享的一个双指针图解算法,已经熟悉的也可以去看一下动画哦,超级有爱!!!!双指针法,浪漫相遇 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = Noneclass Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:node1,node2 = headA,headBwhile node1 != node2:node1 = node1.ne...
面试题01.01 题目描述: 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例: 解答: class Solution:def isUnique(self, astr: str) -> bool:nastr=sorted(astr)for i in range(len(astr)-1):if nastr[i]==nastr[i+1]:return Falsereturn True''' 利用set的不可重复性 class Solution:def isUnique(self, astr: str) -> bool:return len(set(astr)) == len(astr) '''面试题01.02 题目描述: 给定两个字符串 s1 和 s...
LeetCode Q6-Q10 Q11 盛最多水的容器 Container With Most WaterQ12 整数转罗马数字 Interger to RomanQ13 罗马数字转整数 Roman to IntergerQ14 最长公共前缀 Longest Common PrefixQ15 三数之和 3SumQ11 - Q15 一些笔记 Q11 盛最多水的容器 Container With Most Water给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两...
由于今晚有点事,没有认真做明天回来好好补 23、合并K个升序链表 1.1、题目给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。1.2 分析 采用堆的方式 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = Noneclass Solution:def mergeKLists(self, lists: List[ListNode]) -> ListNode:impo...
Leetcode21 - 合并两个有序链表-基于python 1、题目2、解析3、代码4、知识点 1、题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2、解析 方法:迭代设定一个哨兵节点 head ,这可以在最后让我们比较容易地返回合并后的链表。我们维护一个 L3指针,我们需要做的是调整它的 next 指针。然后,我们重复以下过程,直到 l1 或者 l2 指向了 null :如果 l1 当前节点的值小于等于 ...
title: LeetCode No.6 categories: OJLeetCode tags: ProgramingLeetCodeOJLeetCode第六题 本题的实质就是模拟,虽然AC了,但是空间复杂度有点高,时间复杂度的话就是O(len(s))主要是找不到一个合适的存储,我只能用numpy存储了,大小的话和numRow有关。 题目描述 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下: P A H N A P L...
LeetCode 1078. Bigram 分词 给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。 对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。 示例 1: 输入:text = “alice is a good girl she is a good student”, first = “a”, second = “good” 输出:[“girl”,“student”] 示例 2: 输入...
很久没有更新博客了之前一直在忙于考试,最近终于考完了,以后会慢慢坚持更新博客的。对于OJ这个题我计划是每天做一道两道,也是为了以后毕业可以在面试的时候有一个加分项吧,同样也可以锻炼一下自己的编程能力西西。 我觉得对于我来说就是贵在坚持,毕竟在果壳的科研路上也才刚刚起步,日久天长,在搞好科研的同时,可以在在其他方面提升一下自己。 LeetCode第1题 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你...
题目:原题链接(简单) 标签:字符串 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)40ms (53.61%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def interpret(self, command: str) -> str:return command.replace("(al)", "al").replace("()", "o")
题目:原题链接(中等) 标签:哈希表 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(N)O(N)O(N)124ms (91.48%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def maxOperations(self, nums: List[int], k: int) -> int:count = collections.Counter([num for num in nums if num < k])ans = count[0] // 2for n1 in count:if n1 * 2 == k:ans += count[n1] // 2else:if k - n1 in count:ans += min(coun...
题目:原题链接(中等) 标签:数学 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(N)O(N)O(N)O(1)O(1)O(1)1124ms (94.87%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:_MOD = 1000000007def concatenatedBinary(self, n: int) -> int:now = 0for i in range(1, n + 1):now <<= i.bit_length()now += inow %= self._MODreturn now
题目:原题链接(困难) 标签:贪心算法、动态规划 解法时间复杂度空间复杂度执行用时Ans 1 (Python)––44ms (99.08%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def __init__(self):self.size = 0self.k = 0self.ans = 256def minimumIncompatibility(self, nums: List[int], k: int) -> int:# 处理无法分配的情况if collections.Counter(nums).most_common(1)[0][1] > k:return -1nums.sort()# 处理k为1的情况if k ...
题目:原题链接(简单) 标签:回溯算法、数学 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(1)O(1)O(1)O(1)O(1)O(1)44ms (24.12%)Ans 2 (Python)Ans 3 (Python) 解法一: class Solution:def numberOfMatches(self, n: int) -> int:return n - 1
Problem LeetCode Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Example 1: Input: root = [3,1,4,null,2], k = 13/ 1 42 Output: 1Example 2: Input: root = [5,3,6,2,4,null,null,1], k = 35/ 3 6/ 2 4/1 Output: 3Follow up: What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How woul...
题号24 原链表:有一个head指针指向表头元素: 定义一个新的链表res,让其next指针指向old链表,并定义一个指向新链表表头元素的指针Cur: 对new链表进行元素交换: 首先定义一个指向head.next的指针nxt 一个指向nxt.next的指针temp 新链表的头指针cur的next指向头结点的next,即nxt; nxt的next指向head; 经过上面步骤,链表被划分成了两部分(因为2,3之间的链被断开了) 连接断链:head.next=temp第一波的交换完成。更新交换...