数据结构
瓜皮小菜鸡
这个作者很懒,什么都没留下…
展开
-
java面试宝典题目:两个栈模拟队列之python实现
使用栈A和栈B两个栈模拟队列Q,A为插入栈,B为弹出栈。 1.入队只有一种情况: 要入队列,数据直接入栈A即可 2.出队列则要分两种情况考虑 1)栈B不为空:这种情况直接从B弹出数据即可 2)栈B为空:这时要首先依次弹出栈A中的数据,放入栈B,然后再弹出B中元素。 python实现如下: #导入栈的实现模块 from Stack import Stack class Queue(object):...原创 2019-04-20 18:00:45 · 160 阅读 · 0 评论 -
python错误:AttributeError: 'list' object has no attribute 'sorted'
出现该错误的原因是没有注意sort()和sorted()的区别 sort():是容器的函数,直接在原来的列表上进行排序,没有返回值,因此在调用sort()时,是无法进行赋值的。 sorted():python中的内建函数,它返回值是一个列表 正确用法: L = [2,3,1,0,2,5,3] L.sort new_L2 = sorted(L) ...原创 2019-04-24 21:30:28 · 5330 阅读 · 0 评论 -
求一个数二进制中1的个数之python实现
思路一: 判断该数的二进制最后一位是否为1,如果为1,则count加1,然后右移丢弃最后一位。 判断一个数的二进制最后一位是否为1,可以通过与运算。 def number_of1(n): if n<0: #具体根据判断范围来确定0xff中有几个f n = n&0xff count = 0 while n > 0: ...原创 2019-04-24 01:23:02 · 543 阅读 · 0 评论 -
面试题16:数值的整数次方
题目描述: 实现函数double Power(base,exponent),求 base 的 exponent 次方。不得使用库函数,不需要考虑大数问题。 在这里插入代码片 本题主要考虑以下几种情况: 1.指数为正数:很简单直接采用循环就可以了 2.当指数为负数的时候:我们知道0是没有0和负的指数幂的。因此要先对指数取绝对值,再算出次方,最后求倒数。这个过程中要考虑底数为0的情况。 3.最后...原创 2019-04-26 20:01:32 · 100 阅读 · 0 评论 -
Java面试宝典:O(1)时间复杂度求栈中最小元素之python实现
求栈中元素的最小值可以有两种方式 1.通过遍历栈中所有元素,来找出最小值。这是最容易想到的方法,但是何种方法的时间复杂度为O(n) 2.采用空间来换取时间的方式来降低时间复杂度。 使用两个栈:栈A用来存储数据,栈B用来存储栈的最小元素。如下思路: 入栈: 当入栈元素小于原来的最小值时,将这个元素赋给最小值,并将最小值入栈B。值得注意的是,当元素大于原来的最小值时,最小值不变,也要再次将最小值压入栈...原创 2019-04-21 14:13:46 · 199 阅读 · 0 评论