검 지 offer: min 함 수 를 포함 하 는 창고 (Python)
3773 단어 온라인 프로 그래 밍
스 택 의 데이터 구 조 를 정의 합 니 다. 이 형식 에서 스 택 의 최소 요 소 를 얻 을 수 있 는 min 함 수 를 실현 하 십시오.
# -*- coding:utf-8 -*-
class Solution:
def push(self, node):
# write code here
def pop(self):
# write code here
def top(self):
# write code here
def min(self):
# write code here
문제 풀이 의 사고 방향.
제목 은 위 와 같은 네 가지 방법 을 요구 하지만 파 이 썬 에 게 는 너무 간단 하고 도전 성 이 없다. 자바 / C 들 의 긴 코드 를 보고 파 이 썬 을 사용 하 는 나 는 마음 이 허전 하 다.이 문제 로 돌아 가면 스 택 에 들 어가 서 스 택 함수 가 머리 가 없 으 므 로 min 함 수 를 조금 주의해 야 합 니 다.실제 작업 에서 스 택 에 들 어 갈 때 동적 으로 교체 되 어 실 행 될 수 있 기 때문에 최소 값 은 새로 들 어 온 스 택 의 더 작은 값 으로 바 뀔 수도 있 고 팝 업 되 어 min 값 의 동적 변 화 를 초래 할 수도 있 습 니 다.현재 최소 값 을 저장 하기 위해 스 택 을 새로 만 듭 니 다. 더 작은 값 이 스 택 에 들 어 갈 때 이 스 택 에 누 르 고 최소 값 은 스 택 꼭대기 요소 입 니 다.스 택 꼭대기 에 있 는 최소 값 이 스 택 에서 나 오 면 스 택 꼭대기 의 요 소 는 새로운 최소 값 이 라 고 부 릅 니 다.제목 이 요구 하 는 top () 함수 가 어떤 역할 을 정의 하 는 지 보고 top () 함수 로 최소 값 을 저장 하 는 스 택 의 스 택 꼭대기 요 소 를 되 돌려 주 었 습 니 다.
파 이 썬 코드
import sys
class Solution:
def __init__(self):
self.list = []
self.minStack = [sys.maxsize]
def push(self, node):
self.list.append(node)
if node < self.top():
self.minStack.append(node)
def pop(self):
if self.list:
popNum = self.list.pop(-1)
if popNum == self.top():
self.minStack.pop(-1)
return popNum
else:
return None
def top(self):
if self.minStack:
return self.minStack[-1]
else:
return None
def min(self):
return self.top()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LeetCode-permutations-ii(중복 숫자의 배열 이 있 음)-자바제목 설명: Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.