鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 266

[复制链接]
 楼主| 发表于 2019-11-1 20:40:46 | 显示全部楼层
阴阳神万物主 发表于 2019-10-30 21:36
就目前而言,我读题理解出的意思为:求给定全集的两个交集为空的子集,使得两个集合间元素总和的差值最大
...

解答错误

输入:[-2,0,0,1,-1,-1]
输出:4
预期结果:3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-1 20:41:19 | 显示全部楼层
zltzlt 发表于 2019-11-1 20:37
解答错误

输入:[-2,0,0,1,-1,-1]

[1]和[-1,-2]难道不是4么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:42:10 | 显示全部楼层
塔利班 发表于 2019-11-1 20:41
[1]和[-1,-2]难道不是4么

子数组是连在一起的。[-1,-2] 不算 [-2,0,0,1,-1,-1] 的子数组,但 [-1,-1] 算。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-1 20:42:40 | 显示全部楼层
zltzlt 发表于 2019-11-1 20:31
子数组是连在一起的

话说,是一定 A 在左 B 在右吗?
即:一定是左边的子数组的和减去右边的子数组的和吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:42:40 | 显示全部楼层

输入:[-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-1000]
输出:1009
预期结果:1013
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:43:52 | 显示全部楼层
阴阳神万物主 发表于 2019-11-1 20:42
话说,是一定 A 在左 B 在右吗?
即:一定是左边的子数组的和减去右边的子数组的和吗?

不管哪个在左哪个在右,所得的差会用 abs() 处理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-1 20:44:04 | 显示全部楼层
zltzlt 发表于 2019-11-1 20:42
子数组是连在一起的。[-1,-2] 不算 [-2,0,0,1,-1,-1] 的子数组,但 [-1,-1] 算。

你这位置连在一起,我只能说题目还是找描述的清楚的吧,不然感觉是语文奥赛题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-11-1 20:46:47 | 显示全部楼层
塔利班 发表于 2019-11-1 20:44
你这位置连在一起,我只能说题目还是找描述的清楚的吧,不然感觉是语文奥赛题

现在可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:47:18 | 显示全部楼层

解答错误

输入:[-5,-4]
输出:5
预期结果:1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:48:15 | 显示全部楼层
EmperorAA 发表于 2019-10-31 10:42
def fun1(*a):
    if len(a) < 2:
        raise ValueError()

解答错误

输入:[1,2,-3,1]
输出:4
预期结果:6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:50:15 | 显示全部楼层

解答错误

输入:[-2,0,0,1,-1,-1]
输出:4
预期结果:3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:52:01 | 显示全部楼层
danteer 发表于 2019-10-31 13:30
不重叠到底是什么不重叠有歧义啊


位置相同就是重叠
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:53:31 | 显示全部楼层
danteer 发表于 2019-10-31 13:30
不重叠到底是什么不重叠有歧义啊

解答错误

输入:[-2,0,0,1,-1,-1]
输出:4
预期结果:3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:55:14 | 显示全部楼层
华一仙 发表于 2019-10-31 17:51
我来一个不用 sort() 的

解答错误

输入:[-2,0,0,1,-1,-1]
输出:4
预期结果:3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:56:23 | 显示全部楼层

解答错误

输入:[-5,-4]
输出:5
预期结果:1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:57:41 | 显示全部楼层

解答错误

输入:[-2,0,0,1,-1,-1]
输出:4
预期结果:3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 20:59:09 | 显示全部楼层
永恒的蓝色梦想 发表于 2019-11-1 20:03
忽然感觉重复切片很浪费,改了改:

输入以下数据超时
[-28,-75,100,-26,-80,-26,-47,63,59,-84,-54,48,64,-34,-48,80,38,-76,25,17,-59,-10,-67,80,80,-63,-66,5,97,-34,-28,60,59,-64,-9,-45,-15,27,-2,78,-61,-54,-44,-15,66,79,53,-70,11,36,-3,-54,27,-16,81,88,77,-5,-67,82,19,-96,-50,-17,-33,0,58,78,-34,95,75,53,66,45,51,22,-74,-32,-40,-60,92,21,4,-82,-38,-75,19,-90,67,10,52,100,-66,-39,91,-5,39,-59,74,9,-37,-88,60,40,-2,43,-63,-33,35,49,-53,32,20,-100,42,69,49,36,42,-26,-25,70,27,-71,-28,94,-30,-61,12,21,-77,-35,69,2,-90,59,-13,-37,56,7,90,-41,-27,-49,-59,40,39,-80,17,-55,-54,33,87,55,-51,-32,8,52,2,59,67,-1,31,42,87,94,-65,53,-10,31,58,81,34,-30,2,51,-37,73,48,71,-78,-28,-62,41,68,25,-3,57,-58,11,-92,33,85,47,-49,79,-7,-53,8,-41,-66,65,47,11,0,-92,18,41,-91,-26,-82,-78,13,-1,-67,-56,34,-20,2,-54,-58,-77,90,90,-67,29,16,24,-20,49,-97,67,-9,18,10,62,88,-31,-24,36,6,53,-54,-99,-94,-95,26,79,47,34,88,94,-95,68,-88,-80,41,1,-34,60,-95,78,-81,83,-64,-5,-25,-87,-81,-30,75,36,-14,-19,-98,46,-94,-36,-38,51,-48,-91,-39,-50,-33,98,49,81,63,-59,-37,32,4,-54,-23,-38,88,89,-16,-30,90,63,-52,-20,74,82,-34,87,-86,21,-41,93,82,-96,20,-75,96,52,-72,87,45,83,63,-24,-86,-88,85,12,-8,77,-56,-51,-73,43,-34,35,-10,65,54,1,-60,100,36,8,-81,53,81,42,75,-44,83,55,-24,96,-31,-43,42,-37,-51,-33,40,15,-83,-92,-77,-35,-68,21,-64,-12,22,-71,-19,-13,-15,15,56,-8,79,-44,-9,-78,-11,-28,-13,42,38,-7,-48,-90,70,69,2,-47,56,-93,-16,51,44,-1,-93,64,-13,67,-72,95,80,1,68,-47,37,72,-29,-74,79,-60,97,12,-38,7,-75,26,90,99,46,-3,-5,74,9,-26,60,-55,85,-52,-15,-24,3,23,44,5,-55,72,54,97,53,49,-30,18,36,99,23,79,94,-15,-84,-35,86,8,16,1,-23,83,-47,-67,6,13,8,84,57,-80,67,38,-95,65,-46,-87,34,97,-29,-70,55,17,-92,87,-39,-82,74,5,38,-81,-9,41,66,49,-38,-42,88,-65,-83,45,-52,-34,54,-39,-50,-45,-62,35,-26,-74,20,-22,92,-67,51,77,42,58,40,-86,44,13,100,-62,52,-49,-72,-68,-13,47,57,21,63,-54,52,-8,31,-87,-34,-29,-7,45,-32,95,47,-31,-10,-15,9,-76,-69,-15,21,-26,79,-64,43,72,29,-90,6,-29,-15,-53,-40,-3,-7,-91,-80,0,-91,5,-72,55,-88,-31,-43,33,-17,-4,23,-89,26,-29,5,-26,-4,-28,22,-36,45,31,36,-1,-35,-45,22,-67,-85,22,80,-10,-38,-14,-93,-13,27,64,75,89,75,10,-23,-78,41,3,54,73,-73,-28,-61,-48,7,-8,-16,62,-74,50,38,-74,-23,22,3,66,22,-36,-59,17,-54,-45,80,-66,86,3,5,66,28,73,63,17,5,-58,-87,-15,-36,55,-34,-39,93,55,-74,-40,13,-70,89,-10,75,-24,86,76,15,28,-66,-55,8,25,24,98,-47,25,-29,-44,-54,-48,-80,89,98,27,-73,-44,35,-64,84,7,-39,-57,30,100,12,41,-17,-27,-25,7,78,-10,50,-41,-55,-34,21,88,27,21,32,58,-93,18,-55,61,-79,17,-27,82,-29,36,-22,-12,31,49,-1,24,-63,67,41,24,98,66,8,-2,100,-3,-44,55,75,-46,16,-34,-38,-87,-21,-27,39,18,23,-64,-99,43,74,11,-67,4,-96,-56,88,4,-45,27,-79,-39,-97,-14,44,12,-12,57,-81,-37,38,89,-75,-79,-42,-43,-18,-91,39,-23,-90,-20,-32,92,96,99,-11,-7,-17,-39,-23,45,58,-73,73,-14,60,61,-6,-67,-16,72,-91,-51,57,-99,-9,82,32,-39,-40,23,-78,-45,27,-65,100,91,-96,-1,-72,-9,-47,9,87,55,39,79,-42,-26,-3,48,22,-52,-71,-77,-30,12,38,84,-6,39,67,97,77,-82,75,-45,11,-81,-89,60,51,-48,-99,-31,-75,51,82,-31,-39,-77,98,88,66,-37,-3,-96,-83,-86,-27,80,-93,-55,44,-14,98,-86,-4,90,-51,-64,71,-91,-4,-4,-99,-57,-93,27,-15,-89,21,-77,9,39,-80,3,10,65,4,26,27,11,-63,2,-36,-81,4,-57,-93,-53,-92,-44,94,-63,90,56,40,-32,-28,-1,-36,-70,51,1,80,-9,100,-46,-69,-93,59,-82,-34,-58,-90,78,-61,34,33,-37,6,66,-49,92,98,-57,-79,-60,-4,91,95,-85,-83,-69,-82,4,-100,44,-67,92,-79,16,83,-70,84,57,90,-30,-98,-24,-48,100,17,-1,-52,-4,-28,39,-43,28,12,-14,-52,-64,-84,6,66,-98,-73,-72]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-1 21:50:17 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-11-1 20:38
输入以下数据超时:

哈哈哈这数据不超时才有鬼了
循环在大数据面前是不如DP的,可为什么265题解循环比DP更优?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-2 00:28:19 | 显示全部楼层
呜呼哇哈哈哈哈,我可能是第一个正解?
总算搞出来了!
21楼的数据,在我这儿,不到一秒出结果,虽然不晓得对不对……但是,10楼的数据在我这儿得到的是正解。
代码如下:
def solve(put:list,who:bool=False)->int:
    res = 0
    le = len(put)
    #钓鱼式?增减
    now = sum(put)#抛出最长的第一杆
    #print('调试',now)
    A = []
    B = []
    dlt = 0
    for i in range(le-1):
        dlt1 = 0
        for j in range(le-1,i,-1):#慢慢收线
            #print('调试:',now,i,j,[put[j]])
            now -= 2*put[j]
            dlt1 += 2*put[j]
            ready = abs(now)
            if ready > res:
                A = put[i:j]
                B = put[j:]
                res = ready
        else:
            now += dlt1#重新抛到最远处
        now -= put[i]#前进!
        dlt += put[i]
    now += dlt
    for i in range(le-1,0,-1):#反着来
        dlt1 = 0
        for j in range(0,i):#慢慢收线
            #print('调试:',now,i,j,[put[j]])
            now -= 2*put[j]
            dlt1 += 2*put[j]
            ready = abs(now)
            if ready > res:
                A = put[j:i]
                B = put[i:]
                res = ready
        else:
            now += dlt1#重新抛到起点
        now -= put[i]#回家喽!
    if who:
        print('A =',A,'B =',B)
    return res
import time
if __name__ == '__main__':
    print('示例1 输出:',solve([1,2,-3,1]))
    print('示例2 输出:',solve([0,-1]))
    print('别人出错10# 输出:',solve([-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-4,5,-1000]))
    st = time.perf_counter()
    print('别人超时的21# 输出:',solve([0,1]))#为了节约代码空间,这里用的是假的数据代替,意思意思
    ed = time.perf_counter()
    print('用时:',ed-st)

评分

参与人数 1贡献 +1 收起 理由
zltzlt + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-2 08:04:48 | 显示全部楼层
阴阳神万物主 发表于 2019-11-2 00:28
呜呼哇哈哈哈哈,我可能是第一个正解?
总算搞出来了!
21楼的数据,在我这儿,不到一秒出结果,虽然不晓 ...

解答错误

输入:[-10,100,-99,100,-99,100,-99,100,0,0,0,0,0,0,1,1,1,-100000,1,1,1,1,1,100]
输出:100105
预期结果:100106
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-15 12:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表