Python 에서 실 현 된 우선 등급 분배 사탕 문제 알고리즘 예시

본 고 는 파 이 썬 이 실현 한 우선 등급 분배 사탕 문제 알고리즘 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
질문:
n 명 이 있 으 면 모든 사람 이 일정한 우선 등급 이 있 고 등급 이 높 은 사람 은 주변 등급 보다 낮은 사람 이 얻 는 것 이 많 으 며 모든 사람 이 구분 하지 못 하지 않 을 것 이다.
생각:
양쪽 을 옮 겨 다 니 는 방법 을 사용 할 수 있 습 니 다.등급 이 높 은 사람 은 왼쪽 사람 보다 많 고,거꾸로 옮 겨 다 니 면 등급 이 높 은 사람 이 오른쪽 사람 보다 많다 는 것 을 보증 할 수 있 습 니 다.
다음은 구체 적 인 실현 이다.

#!usr/bin/env python
#encoding:utf-8
'''''
__AUthor__:    
  :   
'''
def split_candy(rank_list):
  '''''
  '''
  length=len(rank_list)
  candy_list=[1]*length
  for i in range(length-1):
    if rank_list[i]<rank_list[i+1]:
      candy_list[i+1]=candy_list[i]+1
  for i in range(length-1,0,-1):
    if rank_list[i-1]>rank_list[i] and candy_list[i-1]<=candy_list[i]:
      candy_list[i-1]+=candy_list[i]
  print sum(candy_list)
  print '    :', rank_list
  print '      :', candy_list
if __name__ == '__main__':
  print "      :"
  rank_list=[2,3,4,8,1,5,6]
  split_candy(rank_list)

결 과 는 다음 과 같다.

Python 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기