From f0a41eabdd0cda1a3d9cc31e283546bc0e88a8a5 Mon Sep 17 00:00:00 2001 From: dhruvil15 <76967484+dhruvil15@users.noreply.github.com> Date: Wed, 29 Apr 2026 20:17:18 -0400 Subject: [PATCH] Complete Competitive-coding-2 --- Problem1.java | 19 +++++++++++++++++++ Problem2.java | 24 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/Problem1.java b/Problem1.java index e69de29b..e45c2f1c 100644 --- a/Problem1.java +++ b/Problem1.java @@ -0,0 +1,19 @@ +class Solution { + public int[] twoSum(int[] nums, int target) { + HashMap map = new HashMap<>(); + + for(int i = 0; i < nums.length; i++) { + map.put(nums[i], i); + } + + for (int i = 0; i < nums.length; i++) { + int cmp = target - nums[i]; + if (map.containsKey(cmp) && map.get(cmp) != i) { + return new int[]{map.get(cmp),i}; + } + map.put(nums[i], i); + } + + return new int[]{}; + } +} \ No newline at end of file diff --git a/Problem2.java b/Problem2.java index e69de29b..a559b670 100644 --- a/Problem2.java +++ b/Problem2.java @@ -0,0 +1,24 @@ +class Solution { + + public static int findMax(int[] weights, int[] profit, int totalCapacity) { + int n = totalCapacity; + int m = weights.length; + int[] dp = new int[n + 1]; + + for (int i = 0; i < m; i++) { + for (int j = n; j >= weights[i]; j--) { + dp[j] = Math.max(dp[j], profit[i] + dp[j - weights[i]]); + } + } + + return dp[n]; + } + + public static void main(String args[]) { + int[] items = {10, 20, 30, 40}; + int[] profit = {130, 110, 170, 190}; + int capacity = 50; + + System.out.println(findMax(items, profit, capacity)); + } +} \ No newline at end of file