Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Completed DP-1 Assignemnt - #1990

#1990
Open
Hriday-A wants to merge 1 commit into
super30admin:mastersuper30admin/DP-1:masterfrom
Hriday-A:masterHriday-A/DP-1:masterCopy head branch name to clipboard
Open

Completed DP-1 Assignemnt#1990
Hriday-A wants to merge 1 commit into
super30admin:mastersuper30admin/DP-1:masterfrom
Hriday-A:masterHriday-A/DP-1:masterCopy head branch name to clipboard

Conversation

@Hriday-A

Copy link
Copy Markdown

No description provided.

@super30admin

Copy link
Copy Markdown
Owner

The Coin Change (coin_change.java)

Your solution is excellent! You have successfully implemented the optimized dynamic programming approach for the coin change problem. Here are some strengths and areas for improvement:

Strengths:

  • You used a 1D DP array which is space-efficient.
  • The code is clean, well-commented, and easy to understand.
  • You correctly handled the base case and the recurrence relation.
  • You provided time and space complexity analysis, which is good practice.

Areas for Improvement:

  • While using Integer.MAX_VALUE - 10 is safe in this context (because the maximum amount is 10^4, so the maximum coins needed is 10^4, which is less than 2^15), it's generally better to use Integer.MAX_VALUE and then check for Integer.MAX_VALUE in the result. Alternatively, you can set the initial value to amount + 1 (which is an upper bound for the number of coins needed) to avoid potential issues with integer overflow. For example, you could initialize dp[i] = amount + 1 for all i > 0, since it's impossible to use more than amount coins (if all coins are at least 1).
  • You might want to consider adding a check for amount == 0 at the beginning to return 0 immediately, but it's not necessary because your dp[0] is already set to 0.

Minor Note:

  • In the inner loop, you start from j = coins[i-1] which is efficient. However, you could also iterate from j = 0 to n and add a condition to skip if j < coins[i-1], but your way is better.

Overall, great job! Your solution is optimal and correct.

VERDICT: PASS


House Robber (house_robber.java)

Now, evaluate the student's solution.

VERDICT: NEEDS_IMPROVEMENT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.