算法题
算法题类Coding内容见知乎专栏
https://www.zhihu.com/column/c_1316752875935268864
Xu_Wave
认真生活,快乐工作
展开
-
剑指Offer66-机器人的运动范围(记忆)
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.count = 0 def movingCount(self, threshold, rows, cols): # write code here def helper(i, j): if i<0 or i>=rows or j<0 or j>=cols: .原创 2020-05-19 23:17:40 · 185 阅读 · 0 评论 -
剑指Offer65-矩形覆盖
# -*- coding:utf-8 -*- class Solution: def rectCover(self, number): # write code here # 1 1个2*1小矩形覆盖2*1大矩形 = 1 # 2 2个2*1小矩形覆盖2*2大矩形 = 2 # 3 3个2*1小矩形覆盖2*3大矩形 = 3 # 4 4个2*1小矩形覆盖2*4大矩形 = 5 # ... # 斐.原创 2020-05-19 23:04:07 · 127 阅读 · 0 评论 -
剑指Offer61-剪绳子(记忆-2、3)
# -*- coding:utf-8 -*- class Solution: def cutRope(self, number): # write code here if number == 2: return 1 if number == 3: return 2 mod = number%3 if mod == 1: # 余数为1时,应将1*3分解成2*2 ..原创 2020-05-19 22:36:53 · 176 阅读 · 0 评论 -
剑指Offer60-矩阵中的路径(记忆)
# -*- coding:utf-8 -*- class Solution: def hasPath(self, matrix, rows, cols, path): # write code here matrix_two = [[0 for i in range(cols)] for j in range(rows)] visited = [[False for i in range(cols)] for j in range(rows)] .原创 2020-05-19 21:25:40 · 132 阅读 · 0 评论 -
剑指Offer59-数据流中的中位数
这题给的代码格式是存在问题的, 不加data,会报错。。 # -*- coding:utf-8 -*- class Solution: def __init__(self): self.res = [] def Insert(self, num): # write code here self.res.append(num) def GetMedian(self,data): # write code here .原创 2020-05-14 11:02:07 · 125 阅读 · 0 评论 -
剑指Offer58-字符流中第一个不重复的字符
关键是知道字符流是什么,问题就很好解决了。 # -*- coding:utf-8 -*- class Solution: # 返回对应char def __init__(self): self.s = '' def FirstAppearingOnce(self): # write code here for item in self.s: if self.s.count(item) == 1: .原创 2020-05-14 10:50:31 · 150 阅读 · 0 评论 -
剑指Offer57-丑数(记忆)
class Solution(object): def isUgly(self, num): """ :type num: int :rtype: bool """ while True: tmp = num if num%2 == 0: num = num/2 if num%3 == 0: .原创 2020-05-14 10:09:18 · 134 阅读 · 0 评论 -
剑指Offer56-整数中1出现的次数(从1到n整数中1出现的次数)(记规律-百位为例)
# -*- coding:utf-8 -*- class Solution: def NumberOf1Between1AndN_Solution(self, n): # write code here # 百位为例 # 1.百位==0 - 10023:100~199、1100~1199、2100~2199、...、9100~9199 # 100+100*9 = 1000:更高位(10)*位置(百位100) # 2.百.原创 2020-05-13 23:09:28 · 146 阅读 · 0 评论 -
剑指Offer53-表示数值的字符串
这题难点只有边界问题的考虑,所以最好一开始就考虑全面点,省的不断的调bug,给面试官不好的印象。 那么结合上图中给的提示,大概有以下几种情况: e/E之前和e/E之后可以看做是两个部分。 e/E之前的部分: +/-只能在头部出现,且只能出现一次; 数字直接continue 非e/E的字符出现,直接return False 头部如果出现".",直接return False 非头部如果出现一次".",后面如果再出现".",则return False e/E之后的部分: +/-只能在头部出现,且只能出现一次;.原创 2020-05-08 20:12:47 · 142 阅读 · 0 评论 -
剑指Offer51-把字符串转换成整数(记忆)
牛客网的题目描述不能看,看不懂,直接看LeetCode的吧。 根据上面的描述,我们大概有了几点思路: 开头空格要去掉 正负号要判断一下 第一个非空字符必须是数字/正负号 要限制数字大小 前面的判断完后,尾部还要进行判断,比如前面是数字,后面突然出现其他符号,后面的全部丢掉不看了。(剑指Offer直接return 0,但是LeetCode会让返回前面已有的数据) 所以我们写出了代码,不难。...原创 2020-05-08 16:53:14 · 197 阅读 · 0 评论 -
剑指Offer49-求1+2+3+...+n(记忆)
不要被上面的本题知识点带偏了, 不能乘除不能各种关键字等。 那就直接用递归呗。 # -*- coding:utf-8 -*- class Solution: def __init__(self): self.sum_ = 0 def Sum_Solution(self, n): # write code here ...原创 2020-05-08 10:42:20 · 160 阅读 · 3 评论