文章目录

  • 189. 轮转数组
    • nums和nums[:]
    • python数组两元素互换其值
    • a=[None] * n创建列表
    • 异或^:

本文主要利用leetcode上的189. 轮转数组来解剖其涉及到的a=[None] * n,nums[:]等相关知识。

189. 轮转数组

给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

题解:

class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""arr = [None]*len(nums)for i in range(len(nums)):arr[(i+k) % len(nums)] = nums[i]nums[:] = arr#方法2:# n = len(nums)# k = k % n# nums[:] = nums[n - k:] + nums[:n - k]#方法3:# n = len(nums)# k %= n# nums.reverse()# nums[:k] = list(reversed(nums[:k]))# nums[k:] = list(reversed(nums[k:]))# 方法4:# for i in range(k):#     nums.insert(0,nums[-1])#     del nums[-1]

nums和nums[:]

  • nums = A: 更改nums这一变量名所指的对象,让nums变量指向A所指向的对象。
  • nums[:] = A: 对nums指向的对象赋值,把A变量指向的对象的值逐个复制到nums指向的对象中并覆盖nums指向的对象的原来值。
  • nums[:] 等价于 nums[0:len(nums)] 相当于取nums对应对象的一个视图,通过用这个来改变原对象的某几位值。
    如:A[:2] = [0, 1],改变了A所指向的list对象的前两个值。
    A = [0 ,1],让A这一变量名指向新的List对象[0,1]
    此处参考
  • 加深理解:参考文章

python数组两元素互换其值

nums = [1,2,3,4,5,6,7]
nums[0], nums[4] = nums[4], nums[0]
print(nums)#[5, 2, 3, 4, 1, 6, 7]

a=[None] * n创建列表

如果用a = [] 创建数组的话用到a[1]时会报错:IndexError: list assignment index out of range,所以会用到a=[None] * n,n为要创建的数组长度

grid = [[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]
m, n = len(grid), len(grid[0])#m行n列
a=[False] * n
print(a)#[False, False, False, False]
vis = [[False] * n for _ in range(2)]
print(vis)#[[False, False, False, False], [False, False, False, False]]

异或^:

如果是一个偶数^1,那么答案是该偶数+1.如果是一个奇数^1,那么答案是该奇数-1

python轮转数组及nums和nums[:]的区别相关推荐

  1. Python中数组,列表,元组的区别、定义、功能

    准确的来说,在python中是没有数组类型的,python中取而代之的是列表和元组.列表比元组好用,因为元组一旦定义就没法修改.而列表不仅可以和数组一样按索引访问,还有一堆的功能. 列表: (1)添加 ...

  2. python列表原地交换nums[i], nums[nums[i]] = nums[nums[i]], nums[i]的解决方法

    问题描述 python列表原地交换问题,当索引为 数组[索引] 的表达形式时,不合适的交换操作将导致错误的输出 法1(错误) nums[i], nums[nums[i]] = nums[nums[i] ...

  3. python中nums[:]和nums

    nums[:]是指nums中的每一个元素,nums指向列表对象,id号不一样. 比如今天刷题时,碰到一道题,要求原地向右轮转nums数组. 使用nums和nums[:]会得到不同的答案 原地修改列表应 ...

  4. 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。

    给你一个整数数组 nums . 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 . 返回好数对的数目. 示例 1: 输入:nu ...

  5. 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 来源:力扣(LeetCode) 链

    执行用时:0 ms, 在所有 Java 提交中击败了100.00% 的用户 内存消耗:38.7 MB, 在所有 Java 提交中击败了94.44% 的用户 解题思路 直接保存在原数组,不浪费内存 代码 ...

  6. /给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[

    给你一个由 n 个整数组成的数组 nums ,和一个目标值 target .请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] ( ...

  7. python: nums 和 nums[:] 的区别

    最近在刷题时遇到一个问题,添加数组 nums 和添加 nums[:] 会得到不同的输出结果. 写个例子: nums = [1,2,3,4,5] # 创建一个数组 res = [] res.append ...

  8. python实现数组的全组合以及全排列

    全排列与全组合全排列的递归代码:python实现 全排列 #全排列def swap(nums,i,j):temp = nums[i]nums[i] = nums[j]nums[j] = temp# 递 ...

  9. 轮转数组(Java)

    算法--轮转数组(Java) 题目来源 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数. 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: ...

最新文章

  1. matlab simulink 四分之一1/4车辆垂向振动模型 轮毂电机
  2. [LeetCode]k个一组翻转链表(Reverse Nodes in k-Group)
  3. 学院派CAD工具箱及CAD调用外部应用程序的方法
  4. Linux shell条件判断
  5. QT的QSet类的使用
  6. 银行业务队列简单模拟 (25 分)c语言c++
  7. java 循环3次_想请教下如何用for循环猜错3次就退出游戏
  8. linux怎么进去vi编辑器,red hat enterprise linux开机怎么进入vi编辑器界面?
  9. java报表的导出excel_java导出excel报表
  10. ScrollReveal-元素随页面滚动产生动画的js插件
  11. Transformer长大了,它的兄弟姐妹们呢?(含Transformers超细节知识点)
  12. 曼昆:宏观经济学简史(转)
  13. 如何用xmlspy将xml文档生成xsd文件
  14. 变色龙引导r2795
  15. 如何组织一个高效的开发团队?
  16. 解决Loadrunner打开网页证书错误问题
  17. C# Serialization(序列化)
  18. 【信息安全】数据安全与信息安全
  19. HTML5+CSS3-边框背景图、多背景图、CSS选择器、网络字体、边框背景图片、过渡、放大、旋转
  20. Java、计算三角形的周长

热门文章

  1. eclipse git 上下箭头表示什么
  2. 深度学习baseline模型_深度学习模型在序列标注任务中的应用
  3. 威联通 php升级,威联通折腾篇十七:Docker 安装的 NextCloud 升级、备份及恢复
  4. win7 win10双系统开机系统引导
  5. 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、连接点分布检查、自由空三
  6. OpenCV实践之路——方形图片对角线切割
  7. 关于flask入门教程-记录集转jsonify
  8. GVRP和VTP的比较与区别
  9. 床上用品四件套家居纺织品网站模板
  10. vue-cli-service build 环境设置