diff --git a/src/main/java/com/cool/ling_cha_mount/dp/Num740.java b/src/main/java/com/cool/ling_cha_mount/dp/Num740.java new file mode 100644 index 0000000..0b86f51 --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/dp/Num740.java @@ -0,0 +1,21 @@ +package com.cool.ling_cha_mount.dp; + +public class Num740 { + public int deleteAndEarn(int[] nums) { + int max = Integer.MIN_VALUE; + for (int num : nums) { + max = Math.max(max, num); + } + int[] dp = new int[max + 1]; + for (int num : nums) { + dp[num] += num; + } + int prevMax = 0, currMax = dp[0]; + for (int i = 1; i < dp.length; i++) { + int temp = currMax; + currMax = Math.max(currMax, prevMax + dp[i]); + prevMax = temp; + } + return currMax; + } +}