Leetcode练习(Python):哈希表类:第149题:直线上最多的点数:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。
摘要:题目: 直线上最多的点数:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 思路: 使用斜率来判断,但是在计算斜率时要使用精确计算。 需要考虑不存在斜率,存在斜率和重复点的情况,思路较简单。 这道题在工商银行FinTech笔试题里做过。 程序: from decimal imp
阅读全文
posted @
2020-04-30 16:01
桌子哥
阅读(913)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第76题:最小覆盖子串:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。
摘要:题目: 最小覆盖子串:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。 说明: 如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 思路: 使用滑动窗口法。 程序: from collections i
阅读全文
posted @
2020-04-30 14:00
桌子哥
阅读(1056)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第166题:分数到小数:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。
摘要:题目: 分数到小数:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。 思路: 一开始想到用哈希表来存储小数点后的部分,就是没有想出一个很好的表达,一直也不对,看来一个大神的解答,写的很好啊
阅读全文
posted @
2020-04-28 16:41
桌子哥
阅读(742)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第138题: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。
摘要:题目: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示: val:一个表示 Node.val 的整数。
阅读全文
posted @
2020-04-28 14:15
桌子哥
阅读(195)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第94题:给定一个二叉树,返回它的中序 遍历。
摘要:题目: 给定一个二叉树,返回它的中序 遍历。 思路: 练习过很多次了,都记住了,但是没有找到用哈希表的点。使用递归来实现很方便,掌握中序遍历的原理就好。 程序: # Definition for a binary tree node. # class TreeNode: # def __init__
阅读全文
posted @
2020-04-28 13:48
桌子哥
阅读(242)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第49题:字母异位词分组:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
摘要:题目: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。 思路: 使用sort()将单词排序。 程序: class Solution: def groupAnagrams(self, strs: List[
阅读全文
posted @
2020-04-28 10:54
桌子哥
阅读(761)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第242题:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
摘要:题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 思路: 使用两个哈希表,最后判断这两个哈希表是否相等,思路较简单。 程序: class Solution: def isAnagram(self, s: str, t: str) -> bool: length
阅读全文
posted @
2020-04-27 16:33
桌子哥
阅读(663)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第204题:统计所有小于非负整数 n 的质数的数量。
摘要:题目: 统计所有小于非负整数 n 的质数的数量。 思路: 按照标签使用哈希表,借助判断质数的函数导致超时了,如程序1所示,测试可以通过。后来看使用一种很快的方法叫厄拉多塞筛法,如程序2所示。 程序1: class Solution: def countPrimes(self, n: int) ->
阅读全文
posted @
2020-04-27 16:03
桌子哥
阅读(402)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第136题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
摘要:题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 思路: 使用哈希表,第一次遍历记录元素出现的次数,第二次遍历查询只出现一次的元素。 程序: class Solution: def singleNumber(self, nums: Lis
阅读全文
posted @
2020-04-27 14:58
桌子哥
阅读(1252)
推荐(0) 编辑
Leetcode练习(Python):哈希表类:第3题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
摘要:题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 思路: 使用哈希表变得简单了很多,使用暴力法很容易超时。 程序: class Solution: def lengthOfLongestSubstring(self, s: str) -> int: length = len(
阅读全文
posted @
2020-04-27 14:41
桌子哥
阅读(1027)
推荐(0) 编辑