2412. Minimum Money Required Before Transactions

Difficulty:
Related Topics:
    Similar Questions:

      Problem

      You are given a 0-indexed 2D integer array transactions, where transactions[i] = [costi, cashbacki].

      The array describes transactions, where each transaction must be completed exactly once in some order. At any given moment, you have a certain amount of money. In order to complete transaction i, money >= costi must hold true. After performing a transaction, money becomes money - costi + cashbacki.

      Return** the minimum amount of money required before any transaction so that all of the transactions can be completed regardless of the order of the transactions.**

        Example 1:

      Input: transactions = [[2,1],[5,0],[4,2]]
      Output: 10
      Explanation:
      Starting with money = 10, the transactions can be performed in any order.
      It can be shown that starting with money < 10 will fail to complete all transactions in some order.
      

      Example 2:

      Input: transactions = [[3,0],[0,3]]
      Output: 3
      Explanation:
      - If transactions are in the order [[3,0],[0,3]], the minimum money required to complete the transactions is 3.
      - If transactions are in the order [[0,3],[3,0]], the minimum money required to complete the transactions is 0.
      Thus, starting with money = 3, the transactions can be performed in any order.
      

        Constraints:

      Solution (Java)

      class Solution {
          public long minimumMoney(int[][] transactions) {
              Arrays.sort(transactions,(int a[],int b[])->(a[1]-b[1]));
      
              long max=0,ans=0,ab=0;
              for(int a[]:transactions){
                  if(a[0]>a[1]){
                      max+=a[0];
                      ans=Math.max(ans,max);
                      max-=a[1];
                  }
                  else ab=Math.max(ab,a[0]);
              }
              ans=Math.max(ans,max+ab);
              return ans;
          }
      }
      

      Explain:

      nope.

      Complexity: