当前位置: 首页 > news >正文

Python获取最小路径,查找元素在list中的坐标

# coding=utf-8

__author__ = 'Jeff.xie'

def t(li):

pass

获取最小路径

def minPathSum(grid):

if not grid:

return 0

m= len(grid) #m列

n =len(grid[0]) #n行

print(grid[0])

print("m: ",m)

print("n: ",n)

#创建一个二维数组

dp = [[0]*n for _ in range(m)]

print(dp) #这是一个所有值为0的二维数组

dp[0][0] = grid[0][0]#初始化左上角

#初始化第一列,最小和只能从上面到达,且需要加上当前格子的元素值

for i in range(1,m):

dp[i][0] = dp[i-1][0]+grid[i][0]#每一行的第一个元素,得到结果,并且是从原始数据的每一行第一个数据一次累加

print(dp)

#初始化第一行,最小和只能从左边到达,且需要加加上当前格子元素的最小值

for i in range(1,n):

dp[0][i] = dp[0][i-1] + grid[0][i]

print(dp)

#遍历其他地方的格子,路径只能从相邻左方和相邻上方到达,然后比较两者中最小的元素值加上当前网格的值

for i in range(1,m):

for j in range(1,n):

dp[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j] #判断是上边dp[i-1][j]的数据小,还是左边dp[i][j-1]的数据小

print(dp)

return dp[-1][-1]

查找元素在list中的坐标

def searchRange( nums, target):

#在排序数组中查找元素的第一个和最后一个位置

left = -1

right = -1

for i in range(len(nums)):

if nums[i] == target:

left = i

break

if left != -1:

for i in range(left, len(nums)):

if nums[i] == target:

right = i

return [left, right]

def t5(grid):

#获取行和列

row=len(grid)

column = len(grid[0])

print(column)

#初始化一个全部值为0,但是行列都相同的li

li = [[0]*column for i in range(row)] #总共有len(row)行,每一行都是一个list,每个list的元素都赋值为0

print(li)

#初始化左上角

li[0][0]= grid[0][0]

#初始化第一列

for i in range(1,row):

li[i][0]=li[i-1][0]+grid[i][0]

print(li)

#初始化第一行

for i in range(1,column):

li[0][i]= li[0][i-1]+grid[0][i]

print(li)

#填充其他单元格

for i in range(1,row):

for j in range(1,column):

x= min(li[i-1][j],li[i][j-1])

li[i][j]= x+grid[i][j]

print(li)

#最后一个数字就是最小路径

return li[-1][-1]

if __name__ == '__main__':

grid = [[1,3,1],[1,5,1],[4,2,1],[2,3,4]]

# r= minPathSum(grid)

# print(r)

# r= t2(grid)

# print(r)

r3=t3(grid)

print("r3:",r3)

li=[1,2,3,4,5,5,6,7]

r=searchRange(li,6)

print(r)

t5(grid)

http://www.lryc.cn/news/2389.html

相关文章:

  • 数据采集协同架构,集成马扎克、西门子、海德汉、广数、凯恩帝、三菱、海德汉、兄弟、哈斯、宝元、新代、发那科、华中各类数控以及各类PLC数据采集软件
  • Allegro172版本如何用自带的功能实现快速在1MMBGA下方等距放置电容
  • 一种简单的统计pytorch模型参数量的方法
  • 【PyTorch】教程:对抗学习实例生成
  • 中国区使用Open AI账号试用Chat GPT指南
  • STM32开发(9)----CubeMX配置外部中断
  • Nextjs了解内容
  • 从事功能测试1年,裸辞1个月,找不到工作的“我”怎么办?
  • 机器学习基本原理总结
  • JVET-AC0315:用于色度帧内预测的跨分量Merge模式
  • Session与Cookie的区别(二)
  • 疫情开发,软件测试行情趋势是怎么样的?
  • Java中间件描述与使用,面试可以用
  • [OpenMMLab]AI实战营第七节课
  • 面向对象的设计模式
  • 里氏替换原则|SOLID as a rock
  • 【C++】右左法则,指针、函数与数组
  • 打通数据价值链,百分点数据科学基础平台实现数据到决策的价值转换 | 爱分析调研
  • C++之多态【详细总结】
  • ThingsBoard-RPC
  • java分治算法
  • 【Flutter】【Unity】使用 Flutter + Unity 构建(AR 体验工具包)
  • MC0108白给-MC0109新河妇荡杯
  • 求职(JAVA程序员的面试自我介绍)
  • 金三银四季节前端面试题复习来了
  • 【C/C++基础练习题】简单语法使用练习题
  • 堆排序
  • PLC是什么?PLC相关知识小科普
  • BERT简介
  • OpenStack云平台搭建(5) | 部署Nova