# Solving Leetcode Interviews in Seconds with AI: Sum of Floored Pairs


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1862" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> Given an integer array nums, return the sum of floor(nums[i] / nums[j]) for all pairs of indices 0 <= i, j < nums.length in the array. Since the answer may be too large, return it modulo 109 + 7. The floor() function returns the integer part of the division.   Example 1:  Input: nums = [2,5,9] Output: 10 Explanation: floor(2 / 5) = floor(2 / 9) = floor(5 / 9) = 0 floor(2 / 2) = floor(5 / 5) = floor(9 / 9) = 1 floor(5 / 2) = 2 floor(9 / 2) = 4 floor(9 / 5) = 1 We calculate the floor of the division for every pair of indices in the array then sum them up.  Example 2:  Input: nums = [7,7,7,7,7,7,7] Output: 49    Constraints:  1 <= nums.length <= 105 1 <= nums[i] <= 105  

	# Explanation
	Here's the solution to the problem, incorporating efficiency and addressing the modulo constraint:

*   **High-Level Approach:**
    *   **Frequency Counting:** Create a frequency array to count the occurrences of each number in the input. This allows for efficient calculation of divisions.
    *   **Iterative Division:** Iterate through all possible numerators (i) and denominators (j) up to the maximum value in the input array. Calculate `floor(i / j)` and multiply by the number of times `i` and `j` appear in the input to accumulate the result.
    *   **Modulo Arithmetic:** Apply modulo operation after each addition to prevent integer overflow.

*   **Complexity:**
    *   Runtime Complexity: O(N + M\*logM), where N is the number of elements in `nums`, and M is the maximum value in `nums`.
    *   Storage Complexity: O(M), where M is the maximum value in `nums` (for the frequency array).

	
	# Code
	```python
	def sum_of_floored_pairs(nums):
    """
    Calculates the sum of floor(nums[i] / nums[j]) for all pairs of indices in the array, modulo 10^9 + 7.

    Args:
        nums: An integer array.

    Returns:
        The sum of floored pairs modulo 10^9 + 7.
    """
    MOD = 10**9 + 7
    max_val = max(nums)
    counts = [0] * (max_val + 1)
    for num in nums:
        counts[num] += 1

    total_sum = 0
    for i in range(1, max_val + 1):
        count_i = counts[i]
        if count_i == 0:
            continue
        for j in range(1, max_val + 1):
            count_j = counts[j]
            if count_j == 0:
                continue
            total_sum = (total_sum + (i // j) * count_i * count_j) % MOD

    return total_sum
	```
			
