美文网首页
趣味编程思维 十

趣味编程思维 十

作者: Python_Camp | 来源:发表于2022-05-23 11:30 被阅读0次

在游戏节目中,参赛者会得到一个数字。他们可以通过点击一个按钮来增加或减少一个数字中的一个数字。他们需要在尽可能少的点击次数中使所有的数字都相等。例如,如果数字114,点击三次, 将一个数字减少三次,给出111。

对于以下每一个数字,使所有数字相等所需的最少点击次数是多少?

A. 2393

B. 99478

C. 5559993321

暴力枚举算法


def disCount(s): #字符串转换位数字数组
    distances = []
    s = [int(i) for i in s]
    for i in range(min(s),max(s)+1):
        distances.append((i,sum([abs(i-j) for j in s])))
    return min(distances,key=lambda x:x[1])
s = '5559993321'
print(disCount(s))

s = '99478'
print(disCount(s))

s = '2393'
print(disCount(s))

OUTPUT:

(5, 23)
(8, 7)
(3, 7)

考察思路的训练任务,往往需要从算法角度找到简单且可重复执行的步骤;
因为每一条线路逐一枚举往往效率不足,耗费时间过长!
特别是任务规模庞大,例如遇到远超过下面三个任务的100 * 100的方阵

image.png image.png image.png

S 出发到,相邻的2个节点标记拿到的金币数量, 放入该节点的数组大到小排序存放,取最大的值,遍历到相邻的2个节点(向右或向左),前一个节点的值与该节点金币相加,再取最大值标记,重复以上步骤直到F点,若干个值中取最大即可

image.png

相关文章

  • 趣味编程思维 十

    在游戏节目中,参赛者会得到一个数字。他们可以通过点击一个按钮来增加或减少一个数字中的一个数字。他们需要在尽可能少的...

  • 趣味编程思维 五

    算法思路逐对取大放在前面,循环执行直到组成一个数 算法规则下能够拼接得到最大数末尾是 5 num = f(n) P...

  • 编程思维趣味任务

    1、DNA如何编程解决? dna = "T T T T T G G G A C C C C C C G A A" ...

  • 孩子编程思维训练(入门-提升-应用-竞赛)

    基于Scratch平台的趣味编程课 1.有没有适合儿童学的编程课程,简单容易入门2.编程思维轻松培养一个有条理,思...

  • 编程思维训练趣味任务(十一)

    CAT-Junior 2015 1st problem 迪斯科DJ有一圈闪烁蓝色或白色的灯。 想写一个程序来自动每...

  • 编程思维训练趣味任务(十二)

    一个社区由9个城镇由一个广泛的道路系统连接起来。要求拓宽一些现有的道路。一项调查显示了拓宽每一段道路的成本,结果如...

  • JAVA相关网上资源

    Java SE API 和文档 Java趣味编程100例 趣味白话java之面向对象 Java 常见异常及趣味解释...

  • 兄弟会0805 编程的思维

    编程的思维 1.指令式编程思维 2. 函数式编程思维 编程范式 函数式编程是一种编程范式,我们常见的编程范式有命令...

  • 编程很深奥?一文读懂所谓的“编程思维”

    大家经常听说“学编程可以培养编程思维”,而编程思维是什么?学编程和培养编程思维有什么联系你知道吗? 一、什么是编程...

  • 10道Python趣味题,看看你会几个

    GitHub上有一个趣味小项目,作者列了10个Python练习题,适合拿来练手,锻炼一下自己的编程思维,从易到难,...

网友评论

      本文标题:趣味编程思维 十

      本文链接:https://www.haomeiwen.com/subject/vocjprtx.html