Bird
Raised Fist0
DSA C#programming~5 mins

Buy and Sell Stocks All Variants in DSA C# - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main goal in the 'Buy and Sell Stocks' problem?
To maximize profit by choosing the best days to buy and sell stocks given their prices over time.
Click to reveal answer
beginner
In the 'Buy and Sell Stocks I' variant, how many transactions are allowed?
Only one transaction is allowed: one buy and one sell.
Click to reveal answer
intermediate
What is the key difference between 'Buy and Sell Stocks II' and 'Buy and Sell Stocks I'?
'Buy and Sell Stocks II' allows unlimited transactions, while 'I' allows only one.
Click to reveal answer
intermediate
How does the 'Buy and Sell Stocks with Cooldown' variant affect transactions?
After selling a stock, you must wait one day before buying again (cooldown period).
Click to reveal answer
intermediate
What constraint does the 'Buy and Sell Stocks with Transaction Fee' variant add?
Each transaction (buy+sell) incurs a fee that reduces the profit.
Click to reveal answer
In 'Buy and Sell Stocks I', what is the best strategy to maximize profit?
ABuy at the lowest price and sell at the highest price after it
BBuy and sell every day
CSell before buying
DBuy at the highest price and sell at the lowest price
Which variant allows you to make as many transactions as you want?
ABuy and Sell Stocks I
BBuy and Sell Stocks with Transaction Fee
CBuy and Sell Stocks with Cooldown
DBuy and Sell Stocks II
What does the cooldown period mean in stock trading problems?
AYou must wait one day after selling before buying again
BYou cannot buy stocks at all
CYou must wait one week before selling
DYou cannot buy or sell on the same day
How does a transaction fee affect your profit in stock trading problems?
AIt increases profit
BIt reduces profit by the fee amount per transaction
CIt has no effect
DIt doubles the profit
In 'Buy and Sell Stocks with K Transactions', what does K represent?
AMaximum price of stock
BMaximum number of stocks you can buy
CMaximum number of transactions allowed
DMinimum profit required
Explain the differences between the main variants of the 'Buy and Sell Stocks' problem.
Think about how each variant changes the rules for buying and selling.
You got /4 concepts.
    Describe a simple approach to solve the 'Buy and Sell Stocks I' problem and how it ensures maximum profit.
    Focus on scanning prices once and updating two variables.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main goal when solving the Buy and Sell Stocks problem variants?
      easy
      A. Minimize the number of transactions regardless of profit
      B. Find the stock price on the last day only
      C. Maximize the profit by choosing the best days to buy and sell stocks
      D. Calculate the average stock price over all days

      Solution

      1. Step 1: Understand the problem objective

        The problem asks to maximize profit by buying and selling stocks on certain days.
      2. Step 2: Identify the key action

        Choosing the best days to buy low and sell high maximizes profit.
      3. Final Answer:

        Maximize the profit by choosing the best days to buy and sell stocks -> Option C
      4. Quick Check:

        Goal = Maximize profit [OK]
      Hint: Focus on profit maximization, not just transactions [OK]
      Common Mistakes:
      • Confusing profit with number of transactions
      • Ignoring the buy before sell rule
      • Trying to find average price instead of max profit
      2. Which of the following C# code snippets correctly initializes an array of stock prices for the Buy and Sell Stocks problem?
      easy
      A. int prices[] = new int[6] {7, 1, 5, 3, 6, 4};
      B. int prices = {7, 1, 5, 3, 6, 4};
      C. int[] prices = (7, 1, 5, 3, 6, 4);
      D. int[] prices = new int[] {7, 1, 5, 3, 6, 4};

      Solution

      1. Step 1: Check correct array initialization syntax in C#

        In C#, arrays are initialized with int[] prices = new int[] { ... };.
      2. Step 2: Verify each option

        int[] prices = new int[] {7, 1, 5, 3, 6, 4}; uses correct syntax. The other options have invalid syntax: one declares a single int without array type, another uses parentheses instead of braces, and the last has incorrect array declaration style.
      3. Final Answer:

        int[] prices = new int[] {7, 1, 5, 3, 6, 4}; -> Option D
      4. Quick Check:

        Correct C# array syntax = int[] prices = new int[] {7, 1, 5, 3, 6, 4}; [OK]
      Hint: Use int[] arr = new int[] { ... }; for arrays [OK]
      Common Mistakes:
      • Omitting 'new int[]' when initializing arrays
      • Using parentheses instead of braces
      • Declaring arrays like in C or Java incorrectly
      3. What is the output of the following C# code that finds the maximum profit with only one transaction allowed?
      int[] prices = {7, 1, 5, 3, 6, 4};
      int minPrice = int.MaxValue;
      int maxProfit = 0;
      foreach (int price in prices) {
          if (price < minPrice) minPrice = price;
          else if (price - minPrice > maxProfit) maxProfit = price - minPrice;
      }
      Console.WriteLine(maxProfit);
      medium
      A. 6
      B. 5
      C. 4
      D. 7

      Solution

      1. Step 1: Trace the minimum price and max profit updates

        Prices: 7,1,5,3,6,4. Min price updates to 7 then 1. Max profit updates when price - minPrice > maxProfit: 5-1=4, 6-1=5.
      2. Step 2: Identify final max profit

        Max profit is 5, achieved by buying at 1 and selling at 6.
      3. Final Answer:

        5 -> Option B
      4. Quick Check:

        Max profit one transaction = 5 [OK]
      Hint: Track min price and update max profit on each day [OK]
      Common Mistakes:
      • Confusing max profit with max price
      • Not updating min price correctly
      • Calculating profit without checking min price
      4. The following code is intended to calculate the maximum profit with unlimited transactions allowed. What is the bug?
      int maxProfit = 0;
      for (int i = 1; i < prices.Length; i++) {
          if (prices[i] > prices[i - 1]) {
              maxProfit += prices[i] - prices[i - 1];
          }
      }
      return maxProfit;
      medium
      A. There is no bug; code works correctly
      B. The code does not handle empty price array
      C. The loop should start from i = 0
      D. The code incorrectly adds profit when prices decrease

      Solution

      1. Step 1: Understand the logic for unlimited transactions

        The code adds profit for every increase from day i-1 to i, which is correct for unlimited transactions.
      2. Step 2: Check for bugs

        The loop starts at 1 to compare with previous day. It skips empty array handling but not asked here. No incorrect profit addition.
      3. Final Answer:

        There is no bug; code works correctly -> Option A
      4. Quick Check:

        Unlimited transactions profit logic = correct [OK]
      Hint: Add profit only when price increases day-to-day [OK]
      Common Mistakes:
      • Starting loop at wrong index
      • Adding profit on price drops
      • Ignoring empty or single-element arrays
      5. Given the prices array {3, 3, 5, 0, 0, 3, 1, 4} and a limit of at most two transactions, what is the maximum profit achievable?
      hard
      A. 8
      B. 7
      C. 5
      D. 6

      Solution

      1. Step 1: Understand the two transactions limit

        We can buy and sell at most twice to maximize profit.
      2. Step 2: Calculate max profit by splitting days

        First transaction: buy at 3, sell at 5 (profit 2). Second transaction: buy at 0, sell at 4 (profit 4). Total profit = 2 + 4 = 6. But better transactions are buy at 0 sell at 3 (profit 3), then buy at 1 sell at 4 (profit 3), total 6. However, the maximum profit is actually 8 by buying at 0 and selling at 5 (profit 5), then buying at 1 and selling at 4 (profit 3).
      3. Final Answer:

        8 -> Option A
      4. Quick Check:

        Two transactions max profit = 8 [OK]
      Hint: Split array to find best two transaction profits [OK]
      Common Mistakes:
      • Counting more than two transactions
      • Not choosing optimal buy/sell days
      • Adding profits incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard