Sign inEnroll free
NeetCode 150 / Arrays & Hashing

007Product of Array Except Self

MediumArrays & HashingO(n)
ভিডিওতে দেখো — YouTube @algonur_com

কোড

Python
def productExceptSelf(nums: list[int]) -> list[int]:
    n = len(nums)
    res = [1] * n
    prefix = 1
    for i in range(n):
        res[i] = prefix
        prefix *= nums[i]
    suffix = 1
    for i in range(n - 1, -1, -1):
        res[i] *= suffix
        suffix *= nums[i]
    return res
Java
public int[] productExceptSelf(int[] nums) {
    int n = nums.length;
    int[] res = new int[n];
    Arrays.fill(res, 1);
    int prefix = 1;
    for (int i = 0; i < n; i++) { res[i] = prefix; prefix *= nums[i]; }
    int suffix = 1;
    for (int i = n-1; i >= 0; i--) { res[i] *= suffix; suffix *= nums[i]; }
    return res;
}
Kotlin
fun productExceptSelf(nums: IntArray): IntArray {
    val n = nums.size; val res = IntArray(n) { 1 }
    var prefix = 1
    for (i in 0 until n) { res[i] = prefix; prefix *= nums[i] }
    var suffix = 1
    for (i in n-1 downTo 0) { res[i] *= suffix; suffix *= nums[i] }
    return res
}
C++
vector<int> productExceptSelf(vector<int>& nums) {
    int n = nums.size();
    vector<int> res(n, 1);
    int prefix = 1;
    for (int i = 0; i < n; i++) { res[i] = prefix; prefix *= nums[i]; }
    int suffix = 1;
    for (int i = n-1; i >= 0; i--) { res[i] *= suffix; suffix *= nums[i]; }
    return res;
}
C
int* productExceptSelf(int* nums, int n, int* retSize) {
    int* res = (int*)malloc(n * sizeof(int));
    for (int i = 0; i < n; i++) res[i] = 1;
    int prefix = 1;
    for (int i = 0; i < n; i++) { res[i] = prefix; prefix *= nums[i]; }
    int suffix = 1;
    for (int i = n-1; i >= 0; i--) { res[i] *= suffix; suffix *= nums[i]; }
    *retSize = n; return res;
}

জটিলতা

O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(1)
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← Encode and Decode Stringsপরের সমস্যাValid Sudoku →