首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

停滞在Euler 18上。我的for循环不会在行中向上移动

停滞在Euler 18上是指在解决Euler Project中的第18题时遇到了困难。这个问题是一个经典的动态规划问题,也被称为三角形最大路径和问题。

在解决这个问题时,可以使用动态规划的思想来求解。首先,将给定的三角形数据存储在一个二维数组中,然后从倒数第二行开始,逐行向上计算每个元素的最大路径和。具体步骤如下:

  1. 创建一个与给定三角形数据相同大小的二维数组,用于存储每个位置的最大路径和。
  2. 从倒数第二行开始,逐行向上计算每个元素的最大路径和。对于每个元素,可以选择它下方的两个元素中较大的一个,并将其与当前元素相加,得到当前位置的最大路径和。
  3. 继续向上计算,直到达到三角形的顶部。最终,顶部元素的值即为整个三角形的最大路径和。

以下是一个示例代码,用于解决Euler 18问题:

代码语言:txt
复制
triangle = [
    [75],
    [95, 64],
    [17, 47, 82],
    [18, 35, 87, 10],
    [20, 04, 82, 47, 65],
    [19, 01, 23, 75, 03, 34],
    [88, 02, 77, 73, 07, 63, 67],
    [99, 65, 04, 28, 06, 16, 70, 92],
    [41, 41, 26, 56, 83, 40, 80, 70, 33],
    [41, 48, 72, 33, 47, 32, 37, 16, 94, 29],
    [53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14],
    [70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57],
    [91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48],
    [63, 66, 04, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31],
    [04, 62, 98, 27, 23, 09, 70, 98, 73, 93, 38, 53, 60, 04, 23]
]

# 创建一个与三角形数据相同大小的二维数组,用于存储最大路径和
max_sum = [[0] * len(row) for row in triangle]

# 从倒数第二行开始,逐行向上计算最大路径和
for i in range(len(triangle) - 2, -1, -1):
    for j in range(len(triangle[i])):
        max_sum[i][j] = triangle[i][j] + max(max_sum[i+1][j], max_sum[i+1][j+1])

# 最终,顶部元素的值即为整个三角形的最大路径和
result = max_sum[0][0]
print("最大路径和为:", result)

这段代码使用Python语言实现了解决Euler 18问题的算法。通过动态规划的思想,计算出了给定三角形的最大路径和,并将结果打印输出。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云服务器(ECS):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(TPNS):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Atom配置Python开发环境

发现某些主题在JavaScript似乎很棒,但它们Python不具备可读性。例如,对于我UI和语法高亮主题来说,一直是Atom Dark和One Dark忠实粉丝。...由于我是Python新手,因此决定选择JavaScript解决一个Project Euler网站上问题,并在Python解决这个问题。...Project Euler第5个问题如下所示: 2520是能够被从1到10整除最小整数 能够被从1到20整除最小整数是多少?...所以我开始尝试理解Python,下面是一些语法差异,这将有助于初学者: 1)对于循环 发现JavaScript中正常循环如下所示: for (var i = 0; i < array.length...如果您更熟悉像JavaScript这样缩进不会影响代码语言,这会有点难以适应。

2.7K130

Atom设置Python开发环境

Euler工程网站有许多基于数学问题,可以用任何编程语言来解决。由于我是Python新手,因此决定采用JavaScript解决一个项目euler问题,并在Python解决相同问题。...== 0) { number = number + 1; } console.log(number); 基本这里有一个while循环,从1开始,它检查数字是否可以被1到20整除而没有余数...所以Python试图简单地使用相同代码,但是将它翻译成Python,看起来像这样,并且让序言与这实际不是一个好主意事实相符。...所以当我开始尝试理解Python时,下面是一些语法差异,这将有助于开始: 1)对于循环 发现JavaScript中正常循环如下所示: for (var i = 0; i < array.length...如果你更熟悉像JavaScript这样缩进不会影响代码东西,这有点难以适应。

2.1K70

vim 使用教程

i 光标左侧插入正文 a 光标右侧插入正文 o 光标所在行下一行增添新行 O 光标所在行一行增添新行 I 光标所在行开头插入 A 光标所在行末尾插入...pattern 向上查找pattern \vpattern pattern 非字母数字字符被视为正则表达式特殊字符 (不需转义字符) n 查找下一个 N 查找上一个 :%s/old/new/g 替换全部...、visual模式有效 一般映射模式是有副作用,例如: nmap dd Ojddk 这一命令想要将dd映射为: O向上添加一个新行 esc返回normal模式 j向下移动到要删除一行 dd...删除这一行 k向上移动到新增一行 然而实际执行,当你按下dd时,文件会无限刷出空行直到你按下,这是因为这一命令jddkdd也按照按键映射解读了。...由于有些按键vim非insert模式几乎是永远不会用到(例如逗号,),因此我们可以快捷键命令前统一加上这个键,方便好记又不会冲突。这个键就称为Leader键。

3K40

vim 各种用法,很实用哦,都是本人是在工作中学习和总结

原因很简单,就是接触vim之初第二个想问问题就是这个(第一个就是上面的“1”)。一般在运行某个软件、环境或工具之初,要初始执行一些命令,称为Run Commands,即RC。...5、vim那些最最常用配置 当你尝试去Google一些其他人vimrc配置时,你一定会找到一篇叫做《The ultimate vim configuration》文章,不过它作者,Amix后来在他博客提到...,光标所在行最后一个字符处插入 o 小写字母o,光标所在行下一行处插入新行 O 大写字母O,光标所在行一行处插入新航 r 小写字母r,替换光标所在处字符一次 R 大写字母R,持续替换光标所在处字符...+u 向上翻半页 H 光标移动到目前显示页第一行 M 光标移动到目前显示页中间行 L 光标移动到目前显示页最后一行 7、光标自由操作 Ctrl+o 回到光标的一位置...,到行尾所有字符 y0 复制从光标所在位置,到行首所有字符 3、粘贴操作(paste) p 小写字母p,粘贴剪贴板数据,从光标所在行下一行开始 P 大写字母P,粘贴剪贴板数据

78820

IDEA常用快捷键总结

大家好,又见面了,是你们朋友全栈君。 文章目录 IDEA常用快捷键总结 1. 根据psvm或者main快速生成主函数 2. 根据sout快速生成打印语句 3. 查找快捷键 4....根据sout快速生成打印语句 我们可以方法输入sout 然后IDEA会自动提示打印语句,敲击回车即可自动生成~ 3. 查找快捷键 按Ctrl + F表示在当前页面查找 4....万能键Alt+Enter Alt+Enter是一个特别常用且好用“万能键” 比如我们可以类中导入需要导包 再比如我们可以快速生成方法返回值类型与变量名 如果代码需要处理异常...+ / 注释光标所在行代码,会根据当前不同文件类型使用不同注释符号 (必备) Ctrl + F1 光标所在错误代码处显示错误信息 Ctrl + F3 调转到所选中下一个引用位置 Ctrl...Ctrl + 前方向键 等效于鼠标滚轮向前效果 Ctrl + 后方向键 等效于鼠标滚轮向后效果 Alt系列 Alt+Shift+向上 向上移动选中代码 Alt + Insert 代码自动生成,

49040

IDEA快捷键大全(Windows版本)

可整体向上移动代码块 使用alt + shift + 向上箭头 可将本行向上移动 使用ctrl + tab + 上下箭头 进行窗口切换 使用ctrl + n 或者两次shift 用于查看某个类 使用ctrl...右方向键 光标焦点是工具选项卡,扩大选项卡区域 Ctrl + Shift + 前方向键 光标放在方法名,将方法移动到上一个方法前面,调整方法排序 Ctrl + Shift + 后方向键 光标放在方法名...模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌方法,依此循环进入 Alt + Shift + F9 弹出 Debug 可选择菜单 Alt + Shift + F10 弹出...Run 可选择菜单 Alt + Shift + 左键双击 选择被双击单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 Alt + Shift + 前方向键 移动光标所在行向上移动 Alt...或 警告位置 (必备) F3 查找模式下,定位到下一个匹配处 F4 编辑源 F7 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌方法

97410

linux学习第十七篇:vim介绍,颜色显示,移动光标,复制剪切粘贴

VIM VIM颜色显示和移动光标 VIM一般模式下移动光标 一般模式下复制剪切粘贴 ---- VIM介绍 vi这个命令,它是linux必不可少一个工具。没有它很多工作都无法完成。...vi 和vim最大区别就是编辑一个文本时,vi不会显示颜色,而vim会显示颜色。显示颜色更易于用户进行编辑。其他功能没有什么区别。...vim配置文件/etc/vimrc 当你遇到vim比较高级用法(如自动缩进,语法高亮等)时候,可以去搜文档资料去配置文件/root/.vimrc(默认是空配置 VIM一般模式下移动光标 按键...作用 h或者向左方向键 光标向左移动一个字符 l或者向右方向键 光标向右移动一个字符 k或者向上方向键 光标向上移动一个字符 j或者向下方向键 光标向下移动一个字符 Ctrl+f或PageDown 屏幕向后移动一页.../所在行包括以下共n行 p 从光标所在行开始,向下粘贴已经复制或者粘贴内容 P(大写) 从光标所在行开始,向上粘贴已经复制或者粘贴内容 nyy 从光标所在行开始,向下复制n行 u 还原一步操作(最多回复

2.8K80

学习vim有这一篇就足够了

❞ 1.介绍 vi/vim 是 Linux 内置一款文本编辑器,就如同 Windows 笔记本工具一样。...❞ 2.1 命令模式 ❝1.以下内容全为快捷键,直接按即可,不会有什么显示。 2.注意区分大小写。...可以快速移动光标到所在行行首。 $ :英文输入下,按 shift 和数字键 4 即可。可以快速移动光标到所在行行尾第一个非空字符下。 ^ :英文输入下,按 shift 和数字键 6 即可。...可以快速移动光标到所在行,「第一个非空字符」处。因为敲代码时总有缩进,当然希望到这一行代码第一个字母,而不是这一行行首空格了。 「其他移动光标的操作」: G :到文件最后一行。...可以使用如下快捷键: "+y 先选中所有复制内容,然后按上述快捷键(注意「上述快捷键是三个字符」)即可复制到系统剪切板。 4.如果想在新打开文件粘贴上一个文件复制内容呢?

1.1K40

linuxvi命令详解_centos7 vi命令

大家好,又见面了,是你们朋友全栈君。...方向键 文本中移动光标。 HOME/END 移动光标到行首/行尾。 Page Up/Page Down /下翻页。...5.按键说明: 移动光标 按键 说明 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键...(常用) [Ctrl] + [d] 屏幕『向下』移动半页 [Ctrl] + [u] 屏幕『向上移动半页 + 光标移动到非空格符下一行 – 光标移动到非空格符一行 n 那个 n 表示『数字』,例如...(常用) o, O 进入输入模式(Insert mode):这是英文字母 o 大小写。o 为目前光标所在下一行处输入新一行; O 为目前光标所在一行处输入新一行!

10.4K10

2023最全vim编辑器教程(详细、完整)-编辑器之神

语法1:^ //键盘输入符号^,光标移动到光标所在行行首 语法2: //键盘输入符号,光标移动到光标所在行行尾 语法3:gg //键盘输入字母gg,光标移动到文件首行 上图中,当输入一个g时不是正确语法右下角可以看到输入内容...g,当输入两个g时立刻会执行命令,这里不便演示,只需按语法输入命令即可执行 语法4:G //键盘输入字母G,光标移动到文件尾行 语法5:ctrl+b //键盘ctrl+b,向上翻屏(前提是文件内容足够翻屏...) 语法6:ctrl+f //键盘ctrl+f,向下翻屏 语法7:数字G //键盘输入数字+字母G,光标移动到指定行(数字对应行数) 语法8:数字+键盘方向键/下 //键盘输入数字+键盘方向键/下...,光标以光标所在行为准向上/下移动指定行(对应数字) 语法9:数字+键盘方向键左/右 //键盘输入数字+键盘方向键左/右,光标以光标所在位置为准向左/右移动指定个字符(对应数字) 语法10::数字...: i 光标所在字符前开始插入 a 光标所在字符前开始插入 o 光标所在行下面另起一行开始插入 I 光标所在行行首开始插入,若行首有空格则在空格后插入 A 光标所在行行尾开始插入 O 光标所在行上面另起一行开始插入

2.2K50

Ubuntu14.04安装、配置与卸载QT5步骤详解

/qt/5.9/5.9.0/ 下载后存到你想存文件,这里是主文件创建了个qt5文件夹 ?...第一步,终端输入sudo su,然后输入cd /qt5(若不是存在home,那么直接输入这个,不用进入root。...这里有我们使用到一些按键: 当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标 保存:wq; j 向下移动一行; k 向上移动一行; h 向左移动一个字符; l 向右移动一个字符...;; 向上箭头 向上移动; 向下箭头 向下移动; 向左箭头 向左移动; 向右箭头 向右移动; i 光标之前插入; a 光标之后插入; I 光标所在行行首插入; A 光标所在行行末插入...再打开Qtcreaor就不会出现文件错误弹窗了。如果觉得每次去找qtcreator软件不方便,可以将其锁定在启动处。到此完美解决了Qt安装。

2.1K31

IDEA 中常用快捷键

Crtl + Shift + 向下箭头 向上移动行 Crtl + Shift + 向上箭头 移动光标 ctrl + Home:定位到一页代码行头 ctrl + end :定位到一页代码行末 home...) Ctrl + Shift + 左键单击 把光标放在某个类变量,按此快捷键可以直接定位到该类 (必备) Ctrl + Shift + 左方向键 代码文件,光标跳转到当前单词 / 中文句左侧开头位置...Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌方法,依此循环进入 Alt + Shift + F9 弹出 Debug 可选择菜单 Alt + Shift +...F10 弹出 Run 可选择菜单 Alt + Shift + 左键双击 选择被双击单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 (必备) Alt + Shift + 前方向键 移动光标所在行向上移动...,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌方法 F8 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 F9 Debug 模式下,恢复程序运行

9100

程序员必备vim编辑器命令,你想要都整理好了(建议收藏)

光标右侧文本向右移动 I 光标所在行行首输入文本,相当于在行首执行了i命令 a 光标的右侧输入文本 A 光标所在行尾部进行输入文本,相当于光标行尾执行a命令 o 光标所在行下一行增添新一行...,光标停留在新行行首 O 光标所在行一行增添新一行,光标停留在新行行首 下图所示为vim处于输入模式模式下示意图: 2021-05-29 12.00.55.gif 02.3 vim底线命令模式...② dd 删除光标所在行 ③ u 撤销最近修改,针对所有修改 ④ U 撤销对当前行所有修改 ⑤ r 替换光标位置一个字符,但不会进入insert模式;例如2r:把后面2个字符替换掉... ⑩ 将别的文件内容填充在当前文件 ### 注意是底线命令模式下 :r /usr/local/var/weixin/test.log 读取指定文件内容,插入到当前行最后面 ⑩ 删除文本单词命令...dnj 从当前光标处向下删除n行 -- n表示删除行数 ⑥ dnk 从当前光标处向上删除n行 -- n表示删除行数 ⑦ :g/string/d 删除当前文件string字符串

92740

Vim 快捷键说明及常用命令

移动光标的方法 快捷键 作用 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 h 或 向左箭头键(→) 光标向右移动一个字符...Ctrl] + [d] 屏幕『向下』移动半页 [Ctrl] + [u] 屏幕『向上移动半页 + 光标移动到非空格符下一行 - 光标移动到非空格符一行 n 那个 n 表示『数字』,例如...举例来说,目前光标第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?...(常用) o,O 进入插入模式(Insert mode):这是英文字母 o 大小写。o 为『目前光标所在下一行处插入新一行』; O 为目前光标所在处一行插入新一行!...特别注意, vi ,『数字』是很有意义!数字通常代表重复做几次意思!也有可能是代表去到第几个什么什么意思。举例来说,要删除 50 行,则是用 『50dd』 对吧!

71820

Linux文件管理

选项 -f:就是 force 意思,忽略不存在文件,不会出现警告信息; -i:互动模式,删除前会询问使用者是否动作 -r:递归删除啊!最常用在目录删除了!这是非常危险选项!!!...参数 -f:循环读取 -q:隐藏文件名,默认隐藏 -v:显示文件名 -c:显示字节数 -n:显示文件尾部 n 行内容 -s:与-f合用,表示每次反复间隔休眠S秒 实例 查看文件anaconda-ks.cfg...文本文件编辑 Linux只掌握文本查看是远远不够,我们还需要掌握编辑文本文件 Linux也有图形化文本编辑器,类似于windows记事本,但是很多时候我们只能用命令行来管理 Linux操作系统...命令模式 下面的操作都是命令模式下进行 移动光标的方法 h 或 向左 箭头键 (←) 光标向左移动一个字符 j 或 向下 箭头键(↓) 光标向下移动一个字符 k 或 向上 箭头键(↑) 光标向上移动一个字符...[Page Up] 按键 (常用) [Ctrl] + [d] 屏幕『向下』移动半页 [Ctrl] + [u] 屏幕『向上移动半页 + 光标移动到非空格符下一行 - 光标移动到非空格符一行 n

2.7K40
领券