python - 将零更改为数组中最近的左侧非零邻居
问题描述
假设我有一个数组:
[1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, 2]
如何将零更改为其最近的左侧非零邻居的值?
[1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 1, 1, 1, 1, 2]
解决方案
l=[1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, 2]
arr=[]
for i in l:
if i!=0:
arr.append(i)
left_element=i
else:
arr.append(left_element)
print(arr)
跟踪非零左元素并将其附加到新列表空间:-O(n)运行时:-O(n)
或者
l=[1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, 2]
for i in range(len(l)):
if l[i]!=0:
left_element=l[i]
else:
l[i]=left_element
print(l)
推荐阅读
- sql - 检查密码上次设置日期并在 SQL Server 中发送通知
- azure-devops - 当 Azure Boards 中有未关闭的子工作项时,如何禁止关闭父工作项?
- fullcalendar - FullCalender 可以配置 TimeSlots: Morning, Afternoon & Evening
- laravel - Laravel 7 清理表单数据
- node.js - 在 ExpressJS 中的任何请求之前调用的中间件
- amazon-web-services - 使用 AWS CodeDeploy 的 ECS 跨账户部署
- bash - 运行需要终端输入的 PLP/SQL 过程的 shell 脚本,然后将 shell 进程移至后台
- python - 如何在没有 discord.py 的情况下获取用户在不和谐服务器中发送的消息数量?
- r - R中的调查设计相关问题
- python - 考虑到条件,在熊猫中创建一个新列