fan1993423 发表于 2020-4-17 21:26
我这个如果运气好,也许第一个i就能出答案哦,另外版主能不能314,349测一下,我最近想出来的
是有可能第一个出答案,但排序的时候就把效率给赔进去了……{:10_277:}
from collections import Counter
def func378(arr):
temp = Counter(arr)
temp_set = set(arr)
n = 0
for number in temp_set:
if number+1 in temp_set:
n = max(n,temp+temp)
return n
kinkon 发表于 2020-4-17 21:40
按数量排序有可能会出错,例如,
好像是哈,我给忽略还有这种可能性。已改
target_list = eval(input("Fill in the array:"))
element = {}
target_element = []
adding_result = []
result = []
for each_element in target_list: # 统计各元素出现的次数
element = element.get(each_element,0) + 1
keys = sorted(list(element.keys()))
for i in keys:
if i+1 in keys:
target_element.append(i)
for j in target_element:
adding_result.append(element+element)
for index in range(len(adding_result)):
if adding_result == max(adding_result):
break
for x in range(element]):
result.append(target_element)
for y in range(element+1]):
result.append(target_element+1)
print(len(result))
本帖最后由 斐波纳税 于 2020-4-18 02:09 编辑
def fun378(lst):
count = 0
for eachone in lst:
if lst.count(eachone) + lst.count(eachone+1) > count:
count = lst.count(eachone) + lst.count(eachone+1)
return count
from collections import Counter
def f378(nums):
n,m,s = Counter(nums),0,sorted(set(nums))
for i in range(1,len(s)):
if s-s==1:
m = max(m, n] + n])
return m
@zltzlt 336题也重新完成了,麻烦楼主重新测试下,谢谢
kinkon 发表于 2020-4-17 18:47
试试看能不能通过,速度应该是很慢的
92 ms
永恒的蓝色梦想 发表于 2020-4-17 18:52
方法超级捞
44 ms
March2615 发表于 2020-4-17 19:21
45 ms
本帖最后由 zltzlt 于 2020-4-18 13:34 编辑
小甲鱼de粉丝 发表于 2020-4-17 19:39
一定要连续的吗
不是
zltzlt 发表于 2020-4-18 13:32
是的
子序列,应该不一定是连续的
kinkon 发表于 2020-4-17 19:40
优化一下
46 ms
新人宝宝来看大神
这个算的子序列,,子序列不是连续的吗?
jkluoling1992 发表于 2020-4-18 14:32
这个算的子序列,,子序列不是连续的吗?
字串才是连续的
永恒的蓝色梦想 发表于 2020-4-18 14:42
字串才是连续的
不明白,,这里是看数组的子数组,或者子列表,为啥要提字符串?
jkluoling1992 发表于 2020-4-18 16:18
不明白,,这里是看数组的子数组,或者子列表,为啥要提字符串?
子串……打错了……
永恒的蓝色梦想 发表于 2020-4-18 14:42
字串才是连续的
一般出题都是连续子序列,第一次看见不是连续的
def f(list1):
count = 0
list2 = list(set(list1))
for n in range(len(list2)-1):
if list2-list2 == -1:
c = list1.count(list2) + list1.count(list2)
if c>count:
count = c
return count