漫步云端〃 发表于 2019-7-22 15:39
就是实现这个逻辑的工作量。参考彩票,如果从33个数中选一个号码,那么中奖概率是1/33.但是如果从33个号 ...
这个我知道,我想问的是O(N)和O(N2)这个是指什么意思?				
			
		新手·ing 发表于 2019-7-22 15:56
和我想的一样,所以超时了
原来你说的是程序运行的时间~看大家都用了enumerate()函数,初学第一次看到这个函数哦~~哈哈				
			
		fan1993423 发表于 2019-7-22 16:14
这个我知道,我想问的是O(N)和O(N2)这个是指什么意思?
https://blog.csdn.net/IAlexanderI/article/details/78945951
你看这个应该能知道,我是不懂,只是知道有这么个东西。				
			
		关于提高效率,我感觉还是从算法上下手,从语句的效率上下手不是正途,以我现有的知识我有两个想法:
1 以原始列的最小值或者平均值为基数,跟原始列表中所有数字的差值形成新的列表,用这个新的列表来进行判断,不过这种方式只是将数值减小而已,核心还是基于冒泡法
2 让这个列表长度不断变小,pop出来对比列表内剩余值,从而形成最终结果
只是两个小点子,因为快下班了,就不做出来了				
			
		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))
				
			
		开始思考改进				
			
		zsc198945 发表于 2019-7-22 20:11
def fun225(temp):
    length=len(temp)
    res=[]
思路一致,超时				
			
		#根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。
#如果之后都不会升高,请在该位置用 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)
最后的循环没搞好,输出结果是正确的,要下楼游泳,回来再想				
			
		这道题就是有两个循环就超时,要不超时就能在一个循环里完成				
			
		lucky邪神 发表于 2019-7-23 11:15
#根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数 ...
喜提超时				
			
		fan1993423 发表于 2019-7-23 11:37
这道题就是有两个循环就超时,要不超时就能在一个循环里完成
{:10_333:}你试试呗				
			
		新手·ing 发表于 2019-7-23 12:16
你试试呗
我看到题后也想了一下,最后跟你的思路一致,就没有去写代码了,O(N)我估计是实现不了,这个时候应该呼叫冬雪大佬啊。另我的帖子希望审核通过。				
			
		朕要看
				
			
		 本帖最后由 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)
想了一会儿,你看这个可以吗?只有一层循环!				
			
		fan1993423 发表于 2019-7-23 14:58
想了一会儿,你看这个可以吗?只有一层循环!
我觉得很厉害,
可是还是超时了,
本帖中所有代码都通不过一组数据,
				
			
		新手·ing 发表于 2019-7-23 15:08
我觉得很厉害,
可是还是超时了,
本帖中所有代码都通不过一组数据,
啥子哦,都只有一层循环了,还超时。难道不用循环吗{:10_266:},我实在想不出了不用循环的办法				
			
		fan1993423 发表于 2019-7-23 15:09
啥子哦,都只有一层循环了,还超时。难道不用循环吗,我实在想不出了不用循环的办法
这题好像要用栈做,然而我不会				
			
		新手·ing 发表于 2019-7-23 15:11
这题好像要用栈做,然而我不会
太高深了,已经超出对普通语法知识的考察了。算了。找个符合我们水平的练习题吧,坐等你出226题吧.				
			
		fan1993423 发表于 2019-7-23 15:13
太高深了,已经超出对普通语法知识的考察了。算了。找个符合我们水平的练习题吧,坐等你出226题吧.
{:10_327:}咱们的水平,能做出来就可以了。
{:10_305:}但是新东西还是要学的。				
			
		新手·ing 发表于 2019-7-23 15:15
咱们的水平,能做出来就可以了。
但是新东西还是要学的。
嗯,全栈先等会吧,我现在学的方向是机器学习,深度学习,神经网络,能把这些搞明白我就很满足了,高等数学,线性代数,统计论,概率论,英语。基础我自己都还要夯实