• 【LeetCode】Rotate Array


    Rotate Array

    Rotate an array of n elements to the right by k steps.

    For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

    Note:
    Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.

    Credits:
    Special thanks to @Freezen for adding this problem and creating all test cases.

    AC代码:(Python)

    1 class Solution:
    2     # @param nums, a list of integer
    3     # @param k, num of steps
    4     # @return nothing, please modify the nums list in-place.
    5     def rotate(self, nums, k):
    6         n = len(nums)
    7         k = k % n
    8         nums[:] = nums[n-k:] + nums[:n-k]
    9         

    要注意一个问题:

    A little important thing to be cautious:

    nums[:] = nums[n-k:] + nums[:n-k] 
    

    can't be written as:

    nums = nums[n-k:] + nums[:n-k]
    

    on the OJ.

    The previous one can truly change the value of old nums, but the following one just changes its reference to a new nums not the value of old nums.

    因为题目要求的是:

    @return nothing, please modify the nums list in-place.

    类似的还有:
    1 def purify(lsst):
    2     lst = lsst[:]
    3     for num in lsst:
    4         if num % 2 == 1:
    5             lst.remove(num)
    6     return lst

    这是清除 list 中的奇数,要求不要在原输入上直接修改。

    注意第二行不能 写成:

    lst = lsst

    而应该是:
    lst = lsst[:]


    这样才是值相同的两个list, 否则 lst = lsst 只是一个 list 的两个引用。


    值 和 引用 的问题当属 Python 里的第一大坑。

     
  • 相关阅读:
    chartControl ViewType.Bar 用法测试
    DevExpress ChartControl ViewType.Line
    全角半角转换
    万能打印 下载
    小程序-登陆
    ASPxGridView 选中主表一行数据,从表自动选中(勾选)对应的行
    ASPxGridView 添加勾选列--全选 和 后端获取勾的行ID
    ASPxGridView 用法
    JS动态创建元素
    年会抽奖 抽奖系统 抽奖软件 C# Winform
  • 原文地址:https://www.cnblogs.com/maples7/p/4350032.html
Copyright © 2020-2023  润新知