Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions HackerRank/Electronics_Shop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/* Problem Link : https://www.hackerrank.com/challenges/electronics-shop/problem */

import java.io.*;
import java.util.*;


public class Solution {

/*
* getMoneySpent function to get the total money spent
*/

static int getMoneySpent(int[] keyboards, int[] drives, int b) {
HashMap<Integer, Boolean> ans = new HashMap<>();
for (int i = 0; i < keyboards.length; i++) {
for (int j = 0; j < drives.length; j++) {
if (keyboards[i] + drives[j] <= b) {
ans.put((keyboards[i] + drives[j]), true);
}
}
}
int max = -1;
if (!ans.isEmpty()) {
for (Integer val : ans.keySet()) {
if (val > max) {
max = val;
}
}

}
return max;
}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

String[] bnm = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*");

int b = Integer.parseInt(bnm[0]);

int n = Integer.parseInt(bnm[1]);

int m = Integer.parseInt(bnm[2]);

int[] keyboards = new int[n];

String[] keyboardsItems = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*");

for (int keyboardsItr = 0; keyboardsItr < n; keyboardsItr++) {
int keyboardsItem = Integer.parseInt(keyboardsItems[keyboardsItr]);
keyboards[keyboardsItr] = keyboardsItem;
}

int[] drives = new int[m];

String[] drivesItems = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])*");

for (int drivesItr = 0; drivesItr < m; drivesItr++) {
int drivesItem = Integer.parseInt(drivesItems[drivesItr]);
drives[drivesItr] = drivesItem;
}

/*
* The maximum amount of money she can spend on a keyboard and USB
* drive, or -1 if she can't purchase both items.
*/

int moneySpent = getMoneySpent(keyboards, drives, b);

bufferedWriter.write(String.valueOf(moneySpent));
bufferedWriter.newLine();

bufferedWriter.close();

scanner.close();
}
}
50 changes: 50 additions & 0 deletions LeetCode/AsteroidCollision.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/* Problem link : https://leetcode.com/problems/asteroid-collision/ */

import java.util.*;

class Solution {
public int[] asteroidCollision(int[] asteroids) {


Stack<Integer> stack=new Stack<>();
for(int i=0;i<asteroids.length;i++)
{
if(stack.isEmpty() || (stack.peek()*asteroids[i] > 0) || (stack.peek() < 0 && asteroids[i] > 0 ))
{
stack.push(asteroids[i]);

}
else
{ while(!stack.isEmpty() && stack.peek()*asteroids[i] < 0 ){
int sp=Math.abs(stack.peek());
int ap=Math.abs(asteroids[i]);
if(sp > ap)
{
break;
}
else if(sp < ap)
{
stack.pop();
if(stack.isEmpty() || stack.peek()*asteroids[i] > 0)
{
stack.push(asteroids[i]);
}
}
else
{ stack.pop();
break;
}
}
}
}

int [] arr=new int[stack.size()];
int j=0;
while(!stack.isEmpty())
{
arr[stack.size()-j-1]= stack.peek();
stack.pop();
}
return arr;
}
}