Python作业—— Leetcode题目选做(2)


77Combinations

题目内容:



解题思路:

关于这个题目的思考解题方案的思考来源与这样一段C++代码


这个算法的思想是,使用一个可变的向量vector,通过不断改变它其中的内容,符合条件时便可将它加入最终的结果列表中。

条件符合的由几个情况来判断:一是当其中的数字大于n,即超出要求范围时,将列表索引左移,改变其中数字;二是当列表索引到达最大结尾时,则当前列表符合要求,加入结果列表;如果以上二者均不满足,将列表索引右移,使列表中下一个值等于前一个值,而由于在循环开始时就已经有加1,故可保证列表中后面的值大于前面的值。

使用以上多个条件判断得到符合条件的多个列表加入到结果列表中后,得到所求结果列表,将其返回。


编写代码:


出现错误(错误答案):


错误分析:

Python语言与C++不同。即使将某一个元素加入列表中后,对该元素进行修改,也会导致列表中的该元素发生变化。故在将符合条件列表加入结果列表中时,可采用将其创建的对应的副本放入,从而使得结果列表中的元素不会再发生改变。


修改代码:


正确,提交成功:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值