Код отлично работает на C , но выдает TLE в python на Leetcode

#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 Я также заметил эту ошибку и также исправил ее. Но все еще сталкивается с той же проблемой.