如何追踪低效程序的根本原因——一次刷题引发的性能焦虑探究?

2026-05-27 12:230阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2122个文字,预计阅读时间需要9分钟。

如何追踪低效程序的根本原因——一次刷题引发的性能焦虑探究?

问题来源:在一次在Leetcode上遇到的一道DP题,题目编号723。一般DP题的状态转移过程需要从多个候选中选出最小值,我下面用代码实现了状态转移过程:

pythonfor i in range(size1-1, -1, -1):

问题来由

一次在Leetcode上遇到一道DP题,题号72。一般DP题的状态转移方程需要从多个候选中选出最小值,我用下面的代码实现了状态转移方程:

**第一种** for (int i = size1-1; i >= 0; i--) { for (int j = size2-1; j >= 0; j--) { if (word1[i] == word2[j]) { min = ops[i+1][j+1]; } else { min = 1 + ops[i+1][j+1]; } if (min > 1 + ops[i+1][j]) { min = 1 + ops[i+1][j]; } if (min > 1 + ops[i][j+1]) { min = 1 + ops[i][j+1]; } ops[i][j] = min; } }

但这种写法用时80ms,只击败了不到6%的提交。

阅读全文

本文共计2122个文字,预计阅读时间需要9分钟。

如何追踪低效程序的根本原因——一次刷题引发的性能焦虑探究?

问题来源:在一次在Leetcode上遇到的一道DP题,题目编号723。一般DP题的状态转移过程需要从多个候选中选出最小值,我下面用代码实现了状态转移过程:

pythonfor i in range(size1-1, -1, -1):

问题来由

一次在Leetcode上遇到一道DP题,题号72。一般DP题的状态转移方程需要从多个候选中选出最小值,我用下面的代码实现了状态转移方程:

**第一种** for (int i = size1-1; i >= 0; i--) { for (int j = size2-1; j >= 0; j--) { if (word1[i] == word2[j]) { min = ops[i+1][j+1]; } else { min = 1 + ops[i+1][j+1]; } if (min > 1 + ops[i+1][j]) { min = 1 + ops[i+1][j]; } if (min > 1 + ops[i][j+1]) { min = 1 + ops[i][j+1]; } ops[i][j] = min; } }

但这种写法用时80ms,只击败了不到6%的提交。

阅读全文