秋招笔试编程题(之一)

本文提供了五道编程题目,涉及路径规划以求最小时间、设备编号优化、JSON路径权限判断、找零问题以及日期间隔计算。此外,还有一道关于注册系统用户名生成规则的问题。通过解决这些题目,可以锻炼编程思维和算法应用能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、现给定n支蜡烛线性排列在某一维坐标系上,从左往右第i支蜡烛的坐标为xi,保证x1<x2<x3<...<xn。初始状态下,这些蜡烛都没有被点燃,现在要点燃其中的K支蜡烛。现在你在坐标x=0的位置上,你可以向左或向右移动,移动速度为每秒一个长度单位。你点燃坐标上的所有蜡烛的时间忽略不计。现请你求出点燃坐标上的所有蜡烛所需要的最小时间。

输入描述:输入包含两行,第一行含有两个正整数n,K,其中1<=n<=10^5,1<=K<=n;第二行包含n个整数x1,x2,...,xn,其中-10^8<=xi<=10^8。

输出描述:输出仅包含一行,输出点燃K支蜡烛所需要的最小时间。

示例

输入

5 3

-30 -10 10 20 50

输出

40

说明:5支蜡烛,要点燃其中的3支,现在在0位置处,先左移到-10处点燃蜡烛x2,再右移到10和20处点燃蜡烛x3,x4,一共移动了40个单位长度,共40秒。

2、公司中总是有非常多的设备,对每台设备编号可以使我们更加方便地管理设备。在一次审查中发现,有些设备共享同一编号,有些设备编号超出所在编号区间。我们必须马上解决这些问题。你必须从1~n中选择数字按升序地进行编号,同时由于更改设备编号需要花费很多时间,所以已经满足要求的编号无需更改。(对于重复的编号,保留第一次出现的那台设备编号,务必保证更改的那些编号保持升序)现给你n台设备编号,要求对这n台设备按如上要求重新编号。

输入描述:输入包含两行,第一行为设备台数n,其中1<=n<=10^5;第二行包含n个正整数a1,a2,...,an表示当前设备编号,其中1<=a1<=10^5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值