fan1993423 发表于 2019-7-22 16:14:00

漫步云端〃 发表于 2019-7-22 15:39
就是实现这个逻辑的工作量。参考彩票,如果从33个数中选一个号码,那么中奖概率是1/33.但是如果从33个号 ...

这个我知道,我想问的是O(N)和O(N2)这个是指什么意思?

fallout.nj 发表于 2019-7-22 16:16:38

新手·ing 发表于 2019-7-22 15:56
和我想的一样,所以超时了

原来你说的是程序运行的时间~看大家都用了enumerate()函数,初学第一次看到这个函数哦~~哈哈

漫步云端〃 发表于 2019-7-22 16:29:31

fan1993423 发表于 2019-7-22 16:14
这个我知道,我想问的是O(N)和O(N2)这个是指什么意思?

https://blog.csdn.net/IAlexanderI/article/details/78945951
你看这个应该能知道,我是不懂,只是知道有这么个东西。

fallout.nj 发表于 2019-7-22 16:58:15

关于提高效率,我感觉还是从算法上下手,从语句的效率上下手不是正途,以我现有的知识我有两个想法:
1 以原始列的最小值或者平均值为基数,跟原始列表中所有数字的差值形成新的列表,用这个新的列表来进行判断,不过这种方式只是将数值减小而已,核心还是基于冒泡法
2 让这个列表长度不断变小,pop出来对比列表内剩余值,从而形成最终结果
只是两个小点子,因为快下班了,就不做出来了

zsc198945 发表于 2019-7-22 20:11:16

def fun225(temp):
    length=len(temp)
    res=[]
    print(length)
    for i in range(length):
      for j in range(i,length):
            if temp>temp:
                res.append(j-i)
                break
            if j==length-1:
                res.append(0)

    return res

temp=

print(fun225(temp))

sadangbeng 发表于 2019-7-22 20:33:11

开始思考改进

新手·ing 发表于 2019-7-22 20:36:24

zsc198945 发表于 2019-7-22 20:11
def fun225(temp):
    length=len(temp)
    res=[]


思路一致,超时

lucky邪神 发表于 2019-7-23 11:15:30

#根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。
#如果之后都不会升高,请在该位置用 0 来代替。
#例如,给定一个列表 temperatures = ,你的输出应该是 。
#提示:气温 列表长度的范围是 。每个气温的值的均为华氏度,都是在 范围内的整数。
   
import random
listlen = random.randrange(1,30000)
print (listlen)
temperature =out= *listlen

def templist(num):
    i = 0
    while i < num :
      temp = random.randrange(30,100)
      temperature = temp
      i += 1
    return temperature

temp =templist(listlen)
print('温度列表是:',temp)

for k in range(listlen):
    for j in range(k+1,listlen):
      if j==(listlen-1):
            out=0
            break
      if temp<temp:
            continue
      else :
            out=(j-k)
            break
    out=0
print('输出列表是:',out)

最后的循环没搞好,输出结果是正确的,要下楼游泳,回来再想

fan1993423 发表于 2019-7-23 11:37:56

这道题就是有两个循环就超时,要不超时就能在一个循环里完成

新手·ing 发表于 2019-7-23 12:16:10

lucky邪神 发表于 2019-7-23 11:15
#根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数 ...

喜提超时

新手·ing 发表于 2019-7-23 12:16:25

fan1993423 发表于 2019-7-23 11:37
这道题就是有两个循环就超时,要不超时就能在一个循环里完成

{:10_333:}你试试呗

fan1993423 发表于 2019-7-23 12:40:51

新手·ing 发表于 2019-7-23 12:16
你试试呗

我看到题后也想了一下,最后跟你的思路一致,就没有去写代码了,O(N)我估计是实现不了,这个时候应该呼叫冬雪大佬啊。另我的帖子希望审核通过。

Spy666 发表于 2019-7-23 14:01:30

朕要看

fan1993423 发表于 2019-7-23 14:58:36

本帖最后由 fan1993423 于 2019-7-23 15:00 编辑

a=
# a=
lenth=len(a)
res=[]
i=1
while lenth:
    try:
      if a>a:
            res.append(i)
            a.pop(0)
            i=0
      i+=1
    except:
      res.append(0)
      a.pop(0)
      i=1
      ifnot len(a):break
print(res)

想了一会儿,你看这个可以吗?只有一层循环!

新手·ing 发表于 2019-7-23 15:08:02

fan1993423 发表于 2019-7-23 14:58
想了一会儿,你看这个可以吗?只有一层循环!

我觉得很厉害,
可是还是超时了,
本帖中所有代码都通不过一组数据,

fan1993423 发表于 2019-7-23 15:09:52

新手·ing 发表于 2019-7-23 15:08
我觉得很厉害,
可是还是超时了,
本帖中所有代码都通不过一组数据,

啥子哦,都只有一层循环了,还超时。难道不用循环吗{:10_266:},我实在想不出了不用循环的办法

新手·ing 发表于 2019-7-23 15:11:25

fan1993423 发表于 2019-7-23 15:09
啥子哦,都只有一层循环了,还超时。难道不用循环吗,我实在想不出了不用循环的办法

这题好像要用栈做,然而我不会

fan1993423 发表于 2019-7-23 15:13:09

新手·ing 发表于 2019-7-23 15:11
这题好像要用栈做,然而我不会

太高深了,已经超出对普通语法知识的考察了。算了。找个符合我们水平的练习题吧,坐等你出226题吧.

新手·ing 发表于 2019-7-23 15:15:29

fan1993423 发表于 2019-7-23 15:13
太高深了,已经超出对普通语法知识的考察了。算了。找个符合我们水平的练习题吧,坐等你出226题吧.

{:10_327:}咱们的水平,能做出来就可以了。
{:10_305:}但是新东西还是要学的。

fan1993423 发表于 2019-7-23 15:32:57

新手·ing 发表于 2019-7-23 15:15
咱们的水平,能做出来就可以了。
但是新东西还是要学的。

嗯,全栈先等会吧,我现在学的方向是机器学习,深度学习,神经网络,能把这些搞明白我就很满足了,高等数学,线性代数,统计论,概率论,英语。基础我自己都还要夯实
页: 1 [2] 3 4 5
查看完整版本: Python:每日一题 225