python - 是否根据相当于“交换”元素的计数直接替换数组中的元素?
问题描述
我有两个数字列表,例如
order = [0,-1,1] array = [0,1,0,-1,0,1,1,-1]
array
将始终仅包含 的元素order
。任务是对数组列表进行排序,使其按照 指定的顺序order
,即对于上面的示例,输出应该是
output -> [0,0,0,-1,-1,1,1,1]
我认为很清楚问题是什么。
我解决上述问题的方法是按顺序创建每个元素的计数:
count = {-1:2,0:3,1:3}
array
然后根据计数和给出的顺序简单地迭代并替换每个元素order
:
sorting_pointer = 0
for ele in order:
while count[ele]:
array[sorting_pointer] = ele
sorting_pointer += 1
duplicate_counter[ele] -= 1
return array
我的问题:对于最后一批代码,这是否等同于“交换”元素?从时间和空间复杂性 POV?
通过“交换”元素,我的意思是做类似的事情:
array[0],array[1] = array[2],array[4]
解决方案
推荐阅读
- python - Python 无法访问列表
- android - 如果我的应用程序在后台,为什么 Android 操作系统不会创建 singleTop 活动的新实例?
- aws-elasticsearch - 两个 AWS ES 集群/域之间的 Amazon Elasticsearch 索引复制?
- javascript - 如何将数据从一个 api 端点传递到 reactjs 中的另一个 api 端点
- python - 如何使用 Pandas 数据框显示如下输出?
- python - 无法使用实现代理的请求从有问题的网页中获取标题
- ruby-on-rails - timecop.travel 测试返回 false 而不是 true - rails
- c++ - 使用 char* / wchar_t* MACRO 专门化成员
- codeigniter - 我对这篇文章的理解是否正确?我得到以下代码的输出 12,它被声明为错误
- flutter - 颤振:如何在登录前显示加载动画?