标签: leetcode

7 篇文章

leetcode练习:动态规划 – 1
斐波那契数相关 结合动态规划分治、避免重叠子问题的思想来进行求解 剑指 Offer 10- I,II 两个问题都与斐波那契数列相关,以I为例,斐波那契数列可以通过递归实现,但要避免大量重复的运算,因此可以使用数组暂存。(自己写的就是丑陋了些) public static int fib(int n) { int[] res = new int[n+…
leetcode练习-6
剑指 Offer 50. 第一个只出现一次的字符 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 首先通过字典(散列)将所以字符出现的频率保存。再用一个循环输出只出现一次的第一个字符 class Solution: def firstUniqChar(self, s: str) -> str: dict = {} fo…
leetcode练习-5
剑指 Offer 53 - II. 0~n-1 中缺失的数字 找出递增数组中确实的数字; 思路:二分查找,看索引与值是否相等,即可找到缺失的数字;相比遍历的方法速度肯定会提升。虽然可以运行,但却难以通过测试。 class Solution: def missingNumber(self, nums) -> int: head = 0 tail…
leetcode练习-4
剑指 Offer 03. 数组中重复的数字 数组长度为n,但数的范围在0到n-1。所以必定有重复。但直接遍历真的太憨憨了:sweat_smile:(是我没错了)。 使用哈希表的set()【集合】方法 set对象的每一个元素要求可进行哈希运算,set 会对内部元素进行去重,每个元素在同一个set 中只会出现一次; 字典可以将一个可哈希值映射到一个任意…
leetcode练习-3
剑指 Offer 05. 替换空格 在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。 方法一:遍历 class Solution: def replaceSpace(self, s: str) -> str: if not s : return '…
leetcode练习-2
剑指 Offer 06. 从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def reversePrint(self, head: List…
leetcode练习-1
剑指offer09.用两个栈实现队列 不难,但自己对于python面向对象的掌握还有欠缺。中间也没有考虑周全。思路虽然有了,但编写代码的时候错误还蛮多的。 另外,特别要考虑到如过队列加入,删除再进入再删除情况下的情况。 class CQueue: def __init__(self): self.stack_1 = [] self.stack_2 …