07 2021 档案
摘要:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路:类似#26,使用双指针 设置左右
阅读全文
摘要:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 理解:只需要返回长度,不需要返回数组 思路: 双指针思路: 设置两个值,分别代表两个指针
阅读全文
摘要:前提:将两个升序链表合并为一个新的 升序 链表并返回 思路: 比较两个链表的初始结点,初始结点较小的链表继续比较 该链表剩下部分和另一个链表。该题使用递归完成 代码: # Definition for singly-linked list. # class ListNode: # def __ini
阅读全文
摘要:思路: 采用出栈入栈思路,且该题目是 左括号必须以正确的顺序闭合。即后进的左括号一定是先闭合的。 变量: stack = ['?'] 1.遍历输入的字符串 2.如果遍历的字符为dic字典中的左括号,添加进stack 列表里 3.如果遍历的字符不为左括号,则判断是否为stack列表中最后一个添加左括号
阅读全文
摘要:思路: 使用zip函数完成。 zip( [1,2,3],[1,2,3,4]) -->[(1,1), (2,2), (3,3)] 再将每一项取出来进行去重,使用强制转set类型,可去重。 判断去重后,长度是否为1 如果为1, 则代表为公共前缀,加入到一个原本是空的string变量里面记录下来 如果不为
阅读全文
摘要:思路: 当小的罗马数字放在大的罗马数字左边时,可相当于做减法,因为不会出现乱放的现象(即输入遵循罗马数字规则)所以可以直接判断后一位来决定做不做减法。 将代表的罗马数字与数字放入一个字典 1. 循环取出字符,判断当前位和后一位所代表数字的大小关系,循环长度为原长度-1,因为最后一位找不到后一位 2.
阅读全文
摘要:思路: 1. 数字倒序比较法(基于LeetCode#8 数字反转来完成) a. 将输入数字通过%10 求余 取反转 b.反转后数字与原来输入比较,一致则返回true python3: def isPalindrome(self, x: int) -> bool: if x < 0 : #一开始加了x
阅读全文
摘要:思路: 采用数学方法,诸位取出最后一位数字,然后通过X10,把最后的数乘到最前。python应注意先把数字转换成正数处理,因为负数的求商和取余会是地板除,即向低取整数,例如 商为-11/10 = -1.1-->-2, 余数=被除数-除数*商 -11-10*-2 = 9. 所以直接取余会是错误的数。
阅读全文