腾讯暑期实习题目

37 篇文章 0 订阅
5 篇文章 0 订阅
# -*- coding: UTF-8 -*-
__author__ = 'zy'
__time__ = '2019/3/10 19:38'


def cal(p_line, local, point, road):
    # 此时的位置索引local = 1    #index=local
    index_local = 999999

    for i, j in enumerate(p_line):  # i为索引
        if i not in point:
            if abs(j - p_line[local]) < index_local:
                index_local = abs(j - p_line[local])
                index = i
    road = road + abs(local - p_line[index])
    point.append(index)
    local = index  # 此时的位置索引
    return [point, local, road]

def problem1(points,local,p_line):
    index=None
    index_local=999999
    road=0
    for i,j in enumerate(p_line):#i为索引
        if abs(j-local)<index_local:
            index_local=abs(j-local)
            index=i
        # if abs(j - local) == index_local:
        #     index_local = abs(j - local)
        #     temp=index
        #     if p_line[0:temp]>p_line[temp:]:
        #         index = {temp,i}
    point=[]
    road=road+abs(local-p_line[index])
    point.append(index)      #p_line, local, point, road    [point, local, road]
    local=index#此时的位置索引

    for k in range(1, points-1):
        result=cal(p_line,local,point,road)
        point=result[0]
        local=result[1]
        road=result[2]

    return road

import sys
if __name__=="__main__":
    n=(sys.stdin.readline().strip())
    n=n.split()

    #m=int(sys.stdin.readline().strip())
    line=sys.stdin.readline().strip()
    line=line.split()
    line = list(map(int, line))

    print(problem1(int(n[0]),int(n[1]),line))

# -*- coding: UTF-8 -*-
__author__ = 'zy'
__time__ = '2019/3/10 21:02'
import sys

def problem3(n):
    n=int(n)
    L=list(range(1,n+1))
    result=[]
    for i in range(n-1):
        if len(L)>1:
            result.append(L[0])
            L.pop(0)
            if len(L) > 1:
                L.append(L[0])
                L.pop(0)
        if len(L) == 1:
            result.append(L[0])
    return (result)

if __name__=='__main__':
    line = sys.stdin.readline().strip('\n')  # 去掉换行符"\n"
    a=line
    result=problem3(a)
    for i in result:
        print(i, end=' ')  # 以空格为分隔符

研究腾讯的代码提交方法研究了好一会儿,哎,最后还没提交上,python做算法还是没有C++用着舒服....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值