还是这个小幺 发表于 2020-3-26 21:22:17

永恒的蓝色梦想 发表于 2020-3-26 13:38


朋友,为啥用你的代码报错啊,显示list未被定义..

永恒的蓝色梦想 发表于 2020-3-26 21:28:54

还是这个小幺 发表于 2020-3-26 21:22
朋友,为啥用你的代码报错啊,显示list未被定义..

这个注释只有LEETCODE才能用,用其他的解释器就会报错

Herry2020 发表于 2020-3-26 22:41:44

nums=
n=len(nums)
l=[]
active=0
for i in range(n):
    if nums != (i+1):
      l.extend(,(i+1)])
      active=1
      break
    if active==1:
      break
      
print(l)
   

蒋博文 发表于 2020-3-26 23:09:24

def fun359(nums):
    n = len(nums)
    repeat = 0
    for i in range(n):
      while nums != i + 1:
            if nums - 1] == nums:
                repeat = nums
                break
            else:
                nums - 1],nums = nums,nums - 1]
    miss_nums = (1 + n) * n // 2 + repeat - sum(nums)
    return


我觉得,不排序可以有另一种解法。{:10_248:}
就比如,nums = ,这样输出的是因为是按顺序写的数组,所以后面加上7。楼主,我理解的对吗?{:10_248:}

寻寻寻寻寻风 发表于 2020-3-27 00:22:23

def fun(num):
    lis=[]
    for i in range(1,len(num)):
      if i not innum:
            lis.append(i)
      else:
            ifnum.count(i)==2:
                lis.append(i)
    returnlis

yexing 发表于 2020-3-27 08:38:29

本帖最后由 yexing 于 2020-3-27 10:36 编辑

试试遍历列表找目标元素:
def func359(nums:list) -> list:
    list1 = []
    for i in range(len(nums)):
      if i >= 1:
            if nums == nums:
                list1.append(nums)
                list1.append(nums-1)
                break
    return list1

tain 发表于 2020-3-27 09:12:12

本帖最后由 tain 于 2020-3-27 09:15 编辑

def findnum(*num):
      n = 1
      list1 = []
      for num1 in num:
            if num1 - n == 0:
                  n += 1
            else:
                  list1.append(num1)
                  list1.append(n)
                  break
      print(list1)

rsj0315 发表于 2020-3-27 12:52:23

lst=
def findd(*args):
   lst1=
    for i ⅰn range(1,len(lst)+1):
          if lst.count(i)==2:
                lst1=i
         if lst.count(i)==0:
               lst1=i
   return lst1
ret=fⅰndd(lst)
prⅰnt(ret)

zltzlt 发表于 2020-3-27 17:55:38

TJBEST 发表于 2020-3-26 17:50
版主 输入 可能是 【1,1,2,4】还是片【1,2,1,4】,排好序了?

输入的数据是有序的

Grrr 发表于 2020-3-27 17:55:52

def test359(nums:list):
    n=len(nums)
    result=[]
    for i in range(1,n+1):
      if i not in nums:
            result.append(i)
      if nums.count(i)==2:
            result.append(i)

    return result

print(test359())

zltzlt 发表于 2020-3-27 18:02:37

fan1993423 发表于 2020-3-26 13:50
麻烦版主把357,358题测一下吧

输入 出错

zltzlt 发表于 2020-3-27 18:03:12

BngThea 发表于 2020-3-26 13:53
可以用numpy吗

输入 结果有误

zltzlt 发表于 2020-3-27 18:03:36

March2615 发表于 2020-3-26 14:08
再来一种更容易想到的

248 ms

zltzlt 发表于 2020-3-27 18:04:06

塔利班 发表于 2020-3-26 15:04


236 ms

zltzlt 发表于 2020-3-27 18:04:50

旅途Z 发表于 2020-3-26 16:23
def find_x_y(nums):
    lens = len(nums)
    x = 0


240 ms

fan1993423 发表于 2020-3-27 18:28:56

已改
def fun359(lst):
    result=[]
    lst.sort()
    for i in lst:
      if lst.count(i)==2:
            result.append(i)
            break
    k=set(range(1,len(lst)+1))-set(lst)
    result.append(k.pop())
    return result

zltzlt 发表于 2020-3-27 18:30:15

fan1993423 发表于 2020-3-27 18:28
已改

7840 ms

BngThea 发表于 2020-3-27 19:01:58

zltzlt 发表于 2020-3-27 18:03
输入 结果有误

我默认是输入的numpy.array,简单改了一下

zltzlt 发表于 2020-3-28 13:19:47

BngThea 发表于 2020-3-27 19:01
我默认是输入的numpy.array,简单改了一下

输入 应该返回 ,你却返回了

zltzlt 发表于 2020-3-28 13:23:04

TJBEST 发表于 2020-3-26 17:45
不知道sum的速度如何,如果sum比遍历更快,此法还是可以的。
结果应该不错,但是速度未知,纯数学思想没用 ...

248 ms
页: 1 [2] 3
查看完整版本: Python:每日一题 359