<p>Given an array of integers <code>nums</code> and an integer <code>k</code>, return <em>the total number of subarrays whose sum equals to</em> <code>k</code>.</p>

<p>A subarray is a contiguous <strong>non-empty</strong> sequence of elements within an array.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> nums = [1,1,1], k = 2
<strong>Output:</strong> 2
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> nums = [1,2,3], k = 3
<strong>Output:</strong> 2
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= nums.length &lt;= 2 * 10<sup>4</sup></code></li>
	<li><code>-1000 &lt;= nums[i] &lt;= 1000</code></li>
	<li><code>-10<sup>7</sup> &lt;= k &lt;= 10<sup>7</sup></code></li>
</ul>

class Solution {// TC--->O(N^2)                                           SC--->O(1)
public:
    int subarraySum(vector<int>& nums, int k) {
        // Get the size of the input array 'nums'
        int n = nums.size();
        
        // Initialize 'ans' to store the count of subarrays with sum equal to 'k'
        int ans = 0;
        
        // Outer loop: 'i' is the starting index of the subarray
        for(int i=0;i<n;i++)
        {
            // Initialize the sum of the subarray starting from index 'i' to 0
            int sum = 0;
            
            // Inner loop: 'j' is the ending index of the subarray starting from 'i'
            for(int j=i;j<n;j++)
            {
                // Add the current element 'nums[j]' to the running sum
                sum += nums[j];
                
                // Check if the sum of the subarray nums[i..j] equals 'k'
                if(sum == k)
                {
                    // If the sum is equal to 'k', increment the answer count
                    ans++;
                }
            }
        }
        // Return the total number of subarrays whose sum equals 'k'
        return ans;
    }
};
33265