LeetCode 1205: Monthly Transactions II Solution

Master LeetCode problem 1205 (Monthly Transactions II), a medium challenge, with our optimized solutions in Java, C++, and Python. Explore detailed explanations, test your code in our interactive editor, and prepare for coding interviews.

1205. Monthly Transactions II

Medium

Problem Explanation

Explanation:

Given a list of transactions where each transaction contains information such as id, month, amount, and city, we need to find the city with the highest total amount spent by customers.

To solve this problem, we can use a HashMap to store the total amount spent by customers in each city. We iterate through the transactions, updating the total amount for each city. Finally, we find the city with the highest total amount spent.

Algorithm:

  1. Create a HashMap to store the total amount spent by customers in each city.
  2. Iterate through the transactions:
    • If the city is not present in the HashMap, add it with the amount as the value.
    • If the city is already present, update the total amount by adding the current amount.
  3. Find the city with the highest total amount spent.
  4. Return the city with the highest total amount spent.

Time Complexity:

  • The time complexity of this algorithm is O(n), where n is the number of transactions.

Space Complexity:

  • The space complexity is also O(n) to store the total amount spent in each city.

:

Solution Code

class Solution {
    public String highestSpender(String[][] transactions) {
        Map<String, Integer> cityAmount = new HashMap<>();
        
        for (String[] transaction : transactions) {
            String city = transaction[3];
            int amount = Integer.parseInt(transaction[2]);
            
            cityAmount.put(city, cityAmount.getOrDefault(city, 0) + amount);
        }
        
        String highestSpender = "";
        int maxAmount = 0;
        
        for (Map.Entry<String, Integer> entry : cityAmount.entrySet()) {
            if (entry.getValue() > maxAmount) {
                maxAmount = entry.getValue();
                highestSpender = entry.getKey();
            }
        }
        
        return highestSpender;
    }
}

Try It Yourself

Loading code editor...

Related LeetCode Problems

Frequently Asked Questions

How to solve LeetCode 1205 (Monthly Transactions II)?

This page provides optimized solutions for LeetCode problem 1205 (Monthly Transactions II) in Java, C++, and Python, along with a detailed explanation and an interactive code editor to test your code.

What is the time complexity of LeetCode 1205 (Monthly Transactions II)?

The time complexity for LeetCode 1205 (Monthly Transactions II) varies by solution. Check the detailed explanation section for specific complexities in Java, C++, and Python implementations.

Can I run code for LeetCode 1205 on DevExCode?

Yes, DevExCode provides an interactive code editor where you can write, test, and run your code for LeetCode 1205 in Java, C++, or Python.

Back to LeetCode Solutions