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]


相关文章
|
2月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
27 8
|
2月前
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
28 8
|
2月前
|
存储 缓存 C语言
|
2月前
|
存储 测试技术 Python
Python 数组和列表有什么区别?
【8月更文挑战第29天】
35 4
|
2月前
|
Python
python在列表、元素、字典、集合和numpy的数组前加上星号 * 是什么含义,以及*args和**kwargs的使用
python在列表、元素、字典、集合和numpy的数组前加上星号 * 是什么含义,以及*args和**kwargs的使用
25 0
|
2月前
|
数据采集 Java Python
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
|
2月前
|
前端开发 Python
数据结构Python用队列实现杨辉三角形
数据结构Python用队列实现杨辉三角形
19 0
|
2月前
|
Python
Python 数组比较
Python 数组比较
28 0
|
4天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
14 9
|
4天前
|
存储 开发者 Python
探索Python编程的奥秘
【9月更文挑战第29天】本文将带你走进Python的世界,通过深入浅出的方式,解析Python编程的基本概念和核心特性。我们将一起探讨变量、数据类型、控制结构、函数等基础知识,并通过实际代码示例,让你更好地理解和掌握Python编程。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到新的启示和收获。让我们一起探索Python编程的奥秘,开启编程之旅吧!
下一篇
无影云桌面