Python-剑指offer(5,6)用两个栈实现队列,旋转数组中的最小数字

简介: Python-剑指offer(5,6)用两个栈实现队列,旋转数组中的最小数字

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。


环境:Python2.7.3


思路:建立两个栈A和B,栈A中用append函数实现push操作,对于栈B,当其为空时,将栈A中的元素执行POP操作并存入B中,当B不为空时,对B直接执行POP操作即可。

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stackA = []
        self.stackB = []
    def push(self, node):
        # write code here
        self.stackA.append(node)
    def pop(self):
        # return xx
        if self.stackB == []:
            while self.stackA:
                self.stackB.append(self.stackA.pop())
            return self.stackB.pop()
        return self.stackB.pop()

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。


思路:将数字排序,输出第一个元素即可。

# -*- coding:utf-8 -*-
class Solution:
    def minNumberInRotateArray(self, rotateArray):
        # write code here
        if len(rotateArray)==0:
            return 0
        else:
            rotateArray.sort()
            return rotateArray[0]


相关文章
|
1月前
|
存储 缓存 Java
深度解密 Python 虚拟机的执行环境:栈帧对象
深度解密 Python 虚拟机的执行环境:栈帧对象
59 13
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
65 10
|
1月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
84 4
|
3月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
133 8
|
3月前
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
41 8
|
3月前
|
存储 缓存 C语言
|
3月前
|
存储 测试技术 Python
Python 数组和列表有什么区别?
【8月更文挑战第29天】
356 4
|
1天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
13 4
|
1天前
|
设计模式 程序员 数据处理
编程之旅:探索Python中的装饰器
【10月更文挑战第34天】在编程的海洋中,Python这艘航船以其简洁优雅著称。其中,装饰器作为一项高级特性,如同船上的风帆,让代码更加灵活和强大。本文将带你领略装饰器的奥秘,从基础概念到实际应用,一起感受编程之美。
下一篇
无影云桌面