源式羽语

有志于学,不赞美,不责难,只求了解认识。

offer通过--12打印1到最大的n的的位数-2

题目打印最大n位数,注意大数处理,采用stringdef n_(n):    if n<0:        return     r = [str(9) for i in range(n)]    print ''.join(r)

2018-05-02 15:12:03

阅读数:19

评论数:0

offer通过--11数值的整数次方-2

思路:递归,考虑指数为-1,0,1的情况。class Solution:    def Power(self, base, exponent):        # write code here        flag =0        if exponent <0:   ...

2018-05-02 14:58:56

阅读数:22

评论数:0

offer通过--9斐波那契数列-2

时间复杂度O(n)# -*- coding:utf-8 -*-class Solution:    def Fibonacci(self, n):        # write code here        if n<2:            return n     ...

2018-05-02 11:55:28

阅读数:17

评论数:0

offer通过--8两个栈实现队列-2

此题比较菜,求最小值而已,通过二分查找实现,但OJ时间限制,直接return min(array)了。

2018-05-02 11:39:38

阅读数:24

评论数:0

offer通过--7两个栈实现队列-2

# -*- coding:utf-8 -*-class Solution:    def __init__(self):        self.stack_1 = []        self.stack_2 = []    def push(self, node):        # writ...

2018-05-02 11:05:31

阅读数:20

评论数:0

连续顺子间隔思路

思路:去0,通过上下界来判断缺失间隔和摸到牌的数量之间的间隔。def isc(nums):    l = nums    nums = [num for num in nums if num!=0]    t = {nums[0]}    min_ = max_ = nums[0]    for ...

2018-05-02 00:11:27

阅读数:24

评论数:0

数组中查找给定值

def findk(m,k): if m is None: return False r = 0 c = len(m[0])-1 while r<len(m[0]) and c>=0 andc<len(m): ...

2018-05-01 21:31:52

阅读数:30

评论数:0

537.复数处理

a1, a2 = map(int, a[:-1].split('+'))        b1, b2 = map(int, b[:-1].split('+'))        return '%d+%di' % (a1 * b1 - a2 * b2, a1 * b2 + a2 * b1)

2018-05-01 15:50:14

阅读数:37

评论数:0

检验一颗树是不是另一颗树的子结构

思路:遍历树,使用递归方法。1.先判断节点值是否相等,如果相等则继续判断他们的子树是否相等;2.如果不相等则判断他们的子树是否相等。这样一直递归。退出条件为知道子树到叶节点了,class BinaryTreeNode(object): def __init__(self,data,left...

2018-04-23 16:19:45

阅读数:28

评论数:0

从上到下逐层打印二叉树

解题思路:1.    把根节点放入队列;2.    把孩子放入队列后,3.    依次出队,入队(代码过程:用一个list来存放结点,将根结点首先放入list,然后while list的长度,打印根值,然后临时存l中根的左右结点,然后删除list的第一个元素,再判断左右是否存在,存在的直接加到li...

2018-04-18 22:55:36

阅读数:28

评论数:0

二叉树的镜像树

思路:交换左右子树,时间复杂度O(n),先序遍历class TreeNode(object):    def __init__(self,data,left = None,right =None):        self.data = data        self.left = left  ...

2018-04-17 20:30:42

阅读数:23

评论数:0

第一次只出现一次的字符

思路:用字典来统计个数,但由于字典无序,所以再用一个数组来存放字典的顺序。dic = {} str_='abaccdeff' array =[] for i in range(len(str_)): if str_[i] not in dic: dic[str_[i]] ...

2018-04-16 15:46:15

阅读数:35

评论数:0

统计数组逆序对

在剑指offer中的36题,分析中给出两种解决方案,1.直接用蛮力解,时间复杂度为O(n^2);2.用归并解,时间复杂度为O(nlog)这里根据思路给出代码,书中写了用O(n)的空间换时间来完成,但感觉实际上并不需要空间,直接根据归并思想就可以操作。def countNum(data,start,...

2018-04-16 13:42:38

阅读数:68

评论数:0

求两个链表的第一个公共结点

思路:解法1,直接蛮力解,遍历两个链表,时间复杂度O(mn)           解法2.分析两个链表,两个链从第一个公共结点开始到链尾的结点是完全重合的,(链结构性质已经决定了该属性),所以从链尾开始比较,比到第一个不相同的结点就找到了第一个公共点。时间复杂度O(m+n),空间复杂度O(m+n)...

2018-04-16 00:24:26

阅读数:26

评论数:0

字符串转整数

思路:用一个变量来处理符号位,最终结果乘以符号位。再根据第一位是不是符号来初始化最终结果的首个值,再根据每一位算最后的和,注意字符串取出来的时候还是字符串,所以要先转int型(根据实际需要看加不加最大值和最小值溢出判断,这里没加。)defstrToInt(str):    first = 1   ...

2018-04-13 12:19:46

阅读数:28

评论数:0

不用程序关键字求连续数字的和1+2+3+4+5...+n

思路:递归和循环都会用到关键字比如for,if,等,但是不允许使用那么如果通过其他方式实现for和if功能呢?1.连续相加,可以通过再函数里写构造函数来实现,没实例化一个函数在构造函数里做一次相关运算,但实例化n个的时候n不好控制。2.通过将函数写到两个类中,实现if判断功能,然后通过递归来实现。...

2018-04-13 00:11:21

阅读数:159

评论数:0

不用乘除求和

1.  不用乘除法和for等关键字实现1++。。+n思路:用构造函数实现,然后用递归,但是递归中用了ifclass C(object):    sum1 = 0    n = 0    def __init__(self):        C.n += 1        C.sum1 += C.n...

2018-04-12 22:37:03

阅读数:28

评论数:0

圆圈中最后一个剩余数

# -*- coding:utf-8 -*-class Solution:    def LastRemaining_Solution(self, n, m):        # write code here        if n<1 or m<1:...

2018-04-12 21:28:05

阅读数:29

评论数:0

二叉树中和为给定值的所有路径

本质上是压栈出栈的过程1.写一个主题函数主题函数中要给定默认的树,给定的值,还要一个用来存路径的列表,再加一个记录路径长度的变量2.写一个找路径的函数首先要确定给的节点是不是一个空的,如果是空的则直接退出;其次,把当前节点加入到路径,把当前节点值加进路径长度然后,判断当前是不是叶子(叶子用一个变量...

2018-03-30 22:42:07

阅读数:39

评论数:0

连通域求解

图像处理中连通域指由前景相同像素,并且相同像素邻接的像素组成的域。图像处理中一般都是对二值图像(1白色,0为黑色,一般前景为0黑色)做连通域分析。连通域分析指把连通域找出来并且标记出来。连通域标记方法:(1)两次遍历实现;(2)深度优先搜索遍历1.第一次遍历如果当前元素为0则赋值一个label,l...

2018-03-18 17:25:56

阅读数:307

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭