#c #python-3.x
#c #python-3.x
Вопрос:
Я решаю вопрос по leetcode: https://leetcode.com/problems/minimum-size-subarray-sum/solution / Эта проблема отлично работает с логикой на C , но не дает TLE в той же логике в Python. Кто-нибудь, пожалуйста, может мне помочь.
Код на C
int minSubArrayLen(int s, vector<int>amp; nums)
{
int n = nums.size();
if (n == 0)
return 0;
int ans = INT_MAX;
vector<int> sums(n);
sums[0] = nums[0];
for (int i = 1; i < n; i )
sums[i] = sums[i - 1] nums[i];
for (int i = 0; i < n; i ) {
for (int j = i; j < n; j ) {
int sum = sums[j] - sums[i] nums[i];
if (sum >= s) {
ans = min(ans, (j - i 1));
break;
}
}
}
return (ans != INT_MAX) ? ans : 0;
}
Код на Python
def minSubArrayLen(self, s: int, nums: List[int]) -> int:
n=len(nums)
if n==0:
return 0
ans=math.inf
sums=[0]*n
sums[0]=nums[0]
for i in range(1,n):
sums[i]=sums[i-1] nums[i]
for i in range(n):
for j in range(n):
summ=sums[j]-sums[i] nums[i]
if summ>=s:
ans=min(ans, (j-i 1))
break
return ans if ans!=math.inf else 0
С подобной проблемой я сталкиваюсь и в некоторых других кодах. Кто-нибудь, пожалуйста, может подсказать, как я могу оптимизировать свой код на python.
Комментарии:
1. В коде python вы
jth
для диапазона циклаrange(i, n)
не должныrange(n)
2. @AbhinavaBN Я также заметил эту ошибку и также исправил ее. Но все еще сталкивается с той же проблемой.