摘要:
题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 思路 最初的想法n>0计算res = res*x 计算n次,n<0,将x取倒数后同理,但结果表明计算速度太慢了。 后续应该采用快速幂的算法。这里的本质是分治的思想, 递归:例如当 n = 8 时,x^8 = (x^4)^2 = ((x 阅读全文
摘要:
题目 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 '.' 表示。 思路 使用暴力破解是不现实的,其需要 9^81次运算 阅读全文
摘要:
题目 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 思路 由于异位词由相同字母构成,所以可以用一个顺序的字符串作为这些字母异位词的标志,由此可以想到字典的方法。例如"ate","eat","tea",可以将"aet"作为键,字符串作为值加入其中。 实现 cl 阅读全文
摘要:
题目 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 思路 没有想到。看过解答后知道可以转置加翻转即可,且能达到最优的时间复杂度O(N^2)。 实现 class Solution: def rotate(self, matrix: List[List[int]]) -> 阅读全文
摘要:
题目 给定一个可包含重复数字的序列,返回所有不重复的全排列。 思路 其思路与46题完全一致,但是需要与组合总和2题一般,在同一层取出重复元素。因此可以在每一层设置一个set()类型,将访问过的元素放入其中,禁止相同元素在同一层被提取。 实现 class Solution: def permuteUn 阅读全文
摘要:
题目 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 思路 回溯算法 不断取出字符,对剩余字符进行选择 实现 class Solution: def permute(self, nums: List[int]) -> List[List[int]]: result = [] def bac 阅读全文
摘要:
题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 思路 字符串转数字:从字符串第一位开始取,每次取出的值转换为数字与之前的和的10倍相加即可 数字转字符串:str()函数 实现 class Solution: de 阅读全文