【算法】No.1 [2019/12/1—2019/12/5]

每周算法系列 NO.1

目录

每周算法系列

2019/12/1    题型:数组

2019/12/2    题型:贪心算法

2019/12/3    题型:数组

2019/12/4    题型:数组

2019/12/5    题型:循环


2019/12/1    题型:数组

【题目描述】

      

【参考答案】

      

【自我分析】

      

2019/12/2    题型:贪心算法

【题目描述】

      

【参考答案】

      

【自我分析】

(1)total记录全程加油量和耗油量之差的总和。

若为非负,则表示从某一点起始可以走完全程(一圈);否则,表示不可走完全程(一圈)。

(2)remain记录第i加油站与(i+1)加油站之间加油量和油耗量之差。

为全部加油站的某一站,若为负数,表示从第i加油站无法到达(i+1)加油站,则起始点,肯定不为i,

将起始点尝试从i+1开始,即position=i+1;再将remain重新置零用以判断从i+1站是否可以达到i+2站。

通过for循环控制站点的移动。

(3)当通过for循环遍历所有站点时,若total<0说明,总的加油量<总的耗油量,

可以得出,不存在从某个站点出发,可以走完全程。

若total>0且position记录着第一个加油量>耗油量的站点的下标,即为起始站点。

【奇思妙想】

      

2019/12/3    题型:数组

【题目描述】

      

【参考答案】

      

【自我分析】

      

 

(1)领导—组员关系如上图,在数组中的体现leadernum[i]=ai,则,ai为i的领导。

即数组中存放的值,为数组下标的领导,例如,leadernum[1]=0说明一号员工不存在领导,自己可能就是领导,

再如leadernum[2]=1,说明一号员工为二号员工的领导。

(2)新建一个同等大小的数组membernum[],用于存放每个小组的员工数。

(3)由上可知,若leadernum[i]非0,这说明该员工存在领导

(4)将leadernum[i]作为数组下标值,寻找其领导,并在其对应的小组中+1,实现对小组员工数的统计。

又有3->2->1可知,一个份组的领导也是更大一级分组的员工,例如,2是3的领导,却是1的员工。

如何逐一的找出各级领导,并统计小组员工数便是关键,当数组元素值为0时结束(该员工不存领导,如1)。

(5)如何逐级求出领导,在于将当前数组元素值,作为该数组的下标,通过此下标,寻找其领导,例如leadernum[3]=2,则leadernum[2]=1,又有leadernum[1]=0结束,在程序中通过k实现。在此过程中还需完成对该小组员工数的+1。

2019/12/4    题型:数组

【题目描述】

       

【参考答案】

      

        

 

 

2019/12/5    题型:循环

【题目描述】

       

【自我分析】

      

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值