力扣189题轮转数组,本身很简单,但是反复提交很多次都没有成功,实在是让人难以启齿,分析应该还是概念不清晰导致的,自以为理解得很清楚,实际确实模棱两可。
把数组后几个移动到前面的位置上去,按照我最开始的想法,不过就是切片,把后半部分切下来,形成的两个半个数组再加起来不就是了吗?在pycharm中试运行证明了确实可行,在leetcode平台中却没有通过,仿佛白切了一样,输出结果还是原来的数组。于是改成循环,用pop函数取出最后一个元素,再用insert函数插入到第一个位置上去,平台运行没出错,提交却再次出问题,因为平台判别数组和k都采用了几十万这样的大数字,最终时间超长而不通过。去学习官方答案,官方答案却没有python版本,然后去参看其他人的答案,并且试着提交,结果大多数试运行没问题,已提交就出问题,最后试着进行了我以为无聊的做法,就是在切片之后再相加然后赋值时在被赋值的数组后面加了个索引用的中括号,里面一个冒号,在pycharm中这个属于画蛇添足,肯定能够正确运行结果也会正确,但是没有必要,然而平台显示结果正确而且击败100,算是过关了。
代码如下:
严格来说代码其实就是一句话,就if语句里面那句,切片然后赋值。前文说的那个画蛇添足的地方就是这里:
另外,还有好多次出错是因为关于k的取余操作那句话没有,这句话有没有就是解决k大于数组长度的情况的。两个长度相等是取余之后k为0,也就是不进行任何操作。
通过这个简单的题目却反复好多次不能通过说明任重而道远啊,革命仍需努力!
标签:切片,轮转,数组,平台,力扣,提交,189,就是,赋值 From: https://blog.csdn.net/2401_87460766/article/details/143090528