Asked inRazorpay,SDET-2

Stock Buy and Sell Problem Statement

You are given an array of integers PRICES where PRICES[i] represents the price of a stock on the i-th day, and an integer K representing the number of transactions you can perform.

Your task is to determine the maximum profit that can be achieved with at most K transactions. A valid transaction is defined as buying and then selling a stock.

Note:

You cannot engage in multiple transactions simultaneously; you must sell a stock before buying again.

Example:

Input:
N = 6, PRICES = [3, 2, 6, 5, 0, 3], K = 2
Output:
7
Explanation:

The optimal strategy to maximize profit is to buy on day 2 (price = 2) and sell on day 3 (price = 6), and then buy on day 5 (price = 0) and sell on day 6 (price = 3). The total maximum profit will be (6 - 2) + (3 - 0) = 7.

Input Format:

The first line contains an integer T, the number of test cases. For each test case:
- The first line contains two integers, N and K, separated by a space.
- The second line contains N integers which are the elements of the PRICES array.

Output Format:

For each test case, output a single integer representing the maximum profit achievable with at most K transactions.

Print each test case's result on a new line.

Constraints:

  • 1 ≤ T ≤ 100
  • 1 ≤ N ≤ 5000
  • 0 ≤ K ≤ N/2
  • 0 ≤ PRICES[i] ≤ 105
  • Time Limit: 1 second

Note:

Implementation does not require output printing; it is handled automatically. Just complete the function to return the maximum profit.
Be the first one to answer
Add answer anonymously...
Razorpay SDET-2 Interview Questions
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter